Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich wirklich unabhängige Kopien von Python-Listen?
Unveränderbare Klone von Python-Listen erstellen
Beim Zuweisen von new_list zu my_list handelt es sich nicht um eine tatsächliche separate Listenerstellung. Stattdessen handelt es sich nur um einen Verweis, der auf dieselbe Liste verweist, wodurch alle Änderungen in new_list in my_list widergespiegelt werden.
Listen effektiv kopieren
Um unerwartete Listenänderungen zu vermeiden, Es gibt mehrere Methoden zum Klonen von Listen:
new_list = old_list.copy()
new_list = old_list[:]
new_list = list(old_list)
import copy new_list = copy.copy(old_list)
import copy new_list = copy.deepcopy(old_list)
Beispiel:
class Foo: def __init__(self, val): self.val = val foo = Foo(1) a = ['foo', foo] b = a.copy() c = a[:] d = list(a) e = copy.copy(a) f = copy.deepcopy(a) a.append('baz') foo.val = 5 print(f'original: {a}\nlist.copy(): {b}\nslice: {c}\nlist(): {d}\ncopy: {e}\ndeepcopy: {f}')
Ausgabe:
original: ['foo', Foo(5), 'baz'] list.copy(): ['foo', Foo(5)] slice: ['foo', Foo(5)] list(): ['foo', Foo(5)] copy: ['foo', Foo(5)] deepcopy: ['foo', Foo(1)]
Das obige ist der detaillierte Inhalt vonWie erstelle ich wirklich unabhängige Kopien von Python-Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!