[Python-de] Re: for unpacking
[email protected] (Stefan Ram) 10 Aug 2024 10:47:07 GMT
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | Stefan Ram |
| Message-ID | <[email protected]> |
Patrick Rudin <[email protected]> schrieb oder zitierte: >Stefan Ram wrote: >>Du meinst vielleicht, daß es keine Aliasse für /Stellen/ von >>Listen gibt. Was also nicht geht ist: >>|>>>| a =[ 1, 2, 3 ] >>|>>>| b = alias_for( a[ 1 ]) >>|>>>| b = 4 >>|>>>| print( a ) >>| | [1, 4, 3] >Ja, genau sowas. Für Fälle von unpacking, wo eine wirklich nur zu 99 >Prozent lesend verwendet? Man kann zwar a, b, c =[ 1, 2, 3 ] schreiben, aber wenn die Liste später verändert wird, dann werden diese Veränderungen nicht auf a, b und c übertragen. >Dem verlinkten Vortrag meine ich zu entnehmen, dass mein Missverständnis >gerade in Bezug auf Listen nicht so selten ist... Man kann sagen, daß man Namen an Objekte binden kann und Stellen von Listen aber /keine/ Objekte sind. Was aber gehen würde, wäre |>>>|list =[ [ 1 ], [ 2 ], [ 3 ]] |>>>|a, b, c = list |>>>|b[ 0 ]= 4 |>>>|print( list ) | |[[1], [4], [3]] oder |>>>|import tkinter |>>>|tkinter.Tk().withdraw() | |'' |>>>|list =[ tkinter.IntVar(value=1), tkinter.IntVar(value=2) ] |>>>|print( [ l.get() for l in list ]) | |[1, 2] |>>>|a, b = list |>>>|a.set( 4 ) |>>>|print( [ l.get() for l in list ]) | |[4, 2] . Es gibt auch Programmiersprachen, in denen Stellen von Listen Objekte sind, und daher ein Alias ermöglichen, wie etwa C++. Quelltext in C++ #include <array> #include <iostream> #include <ostream> int main() { ::std::array< int, 3 >list{ { 1, 2, 3 }}; auto & b = list[ 1 ]; b = 4; for( auto & r : list ) ::std::cout << r << ' '; } Ausgabe 1 4 3 _______________________________________________ python-de Mailingliste -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]