Zuweisungs-Problem mit mehrdimensionaler Liste
Verfasst: Mittwoch 17. August 2005, 22:50
# Hallo Leute, bin auf ein Problem gestossen
# mit dem ich nicht so recht klarkomme.
# Evtl. kann mir einer von euch erklaeren
# was hier falsch laeuft.
# Man erzeuge eine mehrdimensionale Liste
# mit Multiplikatoren etwa wie folgt:
>>> x=[[0]*3]*2
>>> x
[[0, 0, 0], [0, 0, 0]]
>>> x[1][1]=7 # ein Element soll veraendert werden
>>> x
[[0, 7, 0], [0, 7, 0]] # aber zwei Elemente bekommen die 7
# Wenn man dagegen die Initialisierung
# auf folgende Art macht ist alles o.k.
>>> x=[[0, 0, 0], [0, 0, 0]]
>>> x
[[0, 0, 0], [0, 0, 0]]
>>> x[1][1]=7
>>> x
[[0, 0, 0], [0, 7, 0]] # nur ein Element bekommt die 7
>>>
# is it a bug or a feature?
# Sollte das jetzt was Dummes gewesen sein,
# so moege man mir verzeihen, bin Anfaenger!!
# Obiges Beispiel wurde unter:
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32
# ausgefuehrt (gleicher Effekt unter Linux)
# Vielen Dank für eure Hilfe.
# mit dem ich nicht so recht klarkomme.
# Evtl. kann mir einer von euch erklaeren
# was hier falsch laeuft.
# Man erzeuge eine mehrdimensionale Liste
# mit Multiplikatoren etwa wie folgt:
>>> x=[[0]*3]*2
>>> x
[[0, 0, 0], [0, 0, 0]]
>>> x[1][1]=7 # ein Element soll veraendert werden
>>> x
[[0, 7, 0], [0, 7, 0]] # aber zwei Elemente bekommen die 7
# Wenn man dagegen die Initialisierung
# auf folgende Art macht ist alles o.k.
>>> x=[[0, 0, 0], [0, 0, 0]]
>>> x
[[0, 0, 0], [0, 0, 0]]
>>> x[1][1]=7
>>> x
[[0, 0, 0], [0, 7, 0]] # nur ein Element bekommt die 7
>>>
# is it a bug or a feature?
# Sollte das jetzt was Dummes gewesen sein,
# so moege man mir verzeihen, bin Anfaenger!!
# Obiges Beispiel wurde unter:
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32
# ausgefuehrt (gleicher Effekt unter Linux)
# Vielen Dank für eure Hilfe.