Seite 1 von 1

Rückwirkung von Änderungen..?

Verfasst: Montag 13. März 2006, 12:06
von Frank86
Hi,

bin neu hier und hab auch noch nicht so viel programmiert. Hab jetzt ein ganz eigenartiges Problem bei python und komm nicht weiter... Ich beschreibs einfach mal, vielleicht kann mir ja jemand damit helfen:

also:

ich hab eine Liste, in der sind andere listen mit Zahlen, diese nenne ich jetzt mal Orginalliste.
Nun wird eine NeueListe erstellt, mit NeueListe = OrginalListe.
Diese neue Liste wird nun im Laufe des Programms verändert und soll am Ende wieder gleich der OrginalListe gesetzt werden.
Die OrginalListe hätte sich in der Zwischenzeit also nicht verändern sollen. Sie hat sich aber genauso verändert wie die OrginalListe.
Ich hab bereits NeueListe=copy.copy(OrginalListe) probiert, aber auch dann ändert sich die OrginalListe mit.

Hab aber keine Ahnung woran das liegen könnte und wie ich das dann verhindern soll?!
Danke für eure Hilfe

Frank


edit:
habs selbst gefunden.... hätte NeueListe= copy.deepcopy(OrginalListe) verwenden müssen! Danke trotzdem

Verfasst: Montag 13. März 2006, 12:18
von Rebecca
Oder

Code: Alles auswählen

 NeueListe = OriginalListe[:]

Verfasst: Montag 13. März 2006, 15:21
von modelnine
Oder
<snip>
Nein. Der Code den Rebecca gepostet hat macht das selbe wie copy.copy, nämlich eine shallow-copy. Da es mit deepcopy geht ist das Problem wohl eher weniger dass die Liste sich verändert, sondern dass sich Objekte die in der Liste sind zwischen NeueListe und AlteListe verändern.

Lies Dir auf jeden Fall mal den Unterschied zwischen einer seichten Kopie und einer tiefen Kopie durch (geht an den OP).