ich habe hier mal ein Snipplet, das seltsam ist:
Code: Alles auswählen
list1 = [1,2]
list2 = []
list2.append(list1)
list1.remove(1)
list2
Ich nutze übrigens Python 2.6
Code: Alles auswählen
list1 = [1,2]
list2 = []
list2.append(list1)
list1.remove(1)
list2
Ich würde erwarten dass genau das rauskommt, was dann auch tatsächlich kopierst. Du tust ja immer die gleiche ``liste1`` modifizieren. Wenn du sie unabhängig machen willst, musst du sie kopieren:moose hat geschrieben:Hi,
ich habe hier mal ein Snipplet, das seltsam ist:
Welche Ausgabe würdet ihr erwarten? Warum bekommt man die Ausgabe [[2]] und nicht [[1,2]]? Wie kann ich list1 verändern, ohne list2 zu verändern?Code: Alles auswählen
list1 = [1,2] list2 = [] list2.append(list1) list1.remove(1) list2
Code: Alles auswählen
list2.append(list1[:])
Code: Alles auswählen
>>> list1 = [1,2]
>>> list2 = []
>>> list2.append(list1[:])
>>> list1.remove(1)
>>> list2
[[1, 2]]