Seite 1 von 1

Listen kopieren, nicht nur einen Zeiger erstellen

Verfasst: Sonntag 9. März 2003, 09:58
von ASCII158
Hallo Leute,

ich weiß, daß diese Frage hier schonmal irgendwo aufgetaucht ist, ich kann sie nur nicht finden.

Wenn ich eine Liste mache:

Code: Alles auswählen

a=['a','b','c']
dann eine Kopie davon erstellen will:
und in der Kopie was ändere:

Code: Alles auswählen

b.remove['a'
dann ändert sich auch a.

Wie kann ich eine echte Kopie einer Liste erstellen?

Danke!

Verfasst: Sonntag 9. März 2003, 11:39
von RicmanX
Ich glaub das ging dadurch, das man ne richtige Kopiermethode nimmt: lesen -> schreiben

Code: Alles auswählen

b=a[:]

Verfasst: Sonntag 9. März 2003, 12:45
von Dookie
Hi '\x9e',

Code: Alles auswählen

>>> import copy
>>> a = [1,2,3,4,5]
>>> b = copy.copy(a)
>>> b[3] = 8
>>> a
[1, 2, 3, 4, 5]
>>> b
[1, 2, 3, 8, 5]
Das Modul copy kennt auch noch eine Funktion deepcopy() welche bei listen die Listen oder Instanzen enthalten nützlich sein kann.


Gruß

Dookie

Verfasst: Sonntag 20. Juli 2003, 14:42
von Dookie
Seit Python 2.1 geht auch

Code: Alles auswählen

>>> a = [1,2,3,4,5]
>>> b = a[:]
>>> b[3] = 8
>>> a
[1, 2, 3, 4, 5]
>>> b
[1, 2, 3, 8, 5
Gruß

Dookie