Listen kopieren, nicht nur einen Zeiger erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ASCII158
User
Beiträge: 80
Registriert: Samstag 28. September 2002, 15:40
Wohnort: München
Kontaktdaten:

Sonntag 9. März 2003, 09:58

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!
mfg,

10011110
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Sonntag 9. März 2003, 11:39

Ich glaub das ging dadurch, das man ne richtige Kopiermethode nimmt: lesen -> schreiben

Code: Alles auswählen

b=a[:]
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 9. März 2003, 12:45

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 20. Juli 2003, 14:42

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
Antworten