- Als ich kürzlich Code schrieb, konnte das Skript nicht ausgeführt werden, egal was passierte. Nach einer langen Überprüfung stellte sich heraus, dass ich einen Fehler auf niedriger Ebene gemacht hatte.
- Der Wert der Originalliste muss in das Skript kopiert werden, und ich verwende „=“, um den Wert direkt zuzuweisen. Das Codebeispiel lautet wie folgt:
list_old = [1,2,3] list_new = list_old
- Das Ergebnis ist, dass, wenn ich versuche, die neue Liste zu ändern, auch die Werte der ursprünglichen Liste geändert werden.
- Der richtige Weg sollte darin bestehen, eine Methode zu verwenden, die nur die Listenwerte kopiert.
- In diesem Artikel werden die verschiedenen Methoden zum Kopieren der Liste beschrieben. Er kann als Zusammenfassung und Erinnerung an mich selbst betrachtet werden. Ich hoffe, dass ich solche Fehler auf niedriger Ebene nicht noch einmal machen werde.
Artikelverzeichnis
1. Direkte Zuordnung
- Diese Methode ist oben der Fall
list_old = [1,2,3] list_new = list_old
- Bei direkter Zuweisung verweisen sowohl die Originalliste als auch die neue Liste auf dasselbe Listenobjekt.
- Fügen Sie beispielsweise ein Element zur neuen Liste hinzu, drucken Sie die alten Listendaten aus und Sie werden feststellen, dass auch ein Element hinzugefügt wurde
Zweitens die Listenkopiermethode ( list.copy() ) .
-
Diese Methode kopiert nur die Werte innerhalb der Liste
list_old = [1,2,3] list_new = list_old.copy()
-
Die alte und die neue Liste verweisen auf zwei Listenobjekte mit demselben Wert
-
Das Hinzufügen eines Elements zur neuen Liste hat keine Auswirkungen auf die alte Liste.
3. Strukturieren Sie die Liste neu
- Die nächsten paar Methoden sind relativ ähnlich. Sie nehmen alle die Daten aus der alten Liste heraus und rekonstruieren sie in einer neuen Liste
- Machen Sie also einfach eine kurze Einführung und wählen Sie die passende Methode.
1. Listenindex verwenden
list_old = [1,2,3]
list_new = list_old[:]
2. Verwenden Sie list(), um eine Liste zu erstellen
list_old = [1,2,3]
list_new = list(list_old)
3. Verwenden Sie extension(), um eine Liste zu erstellen
Funktion „extend()“ : Hängen Sie mehrere Werte in einer anderen Sequenz gleichzeitig am Ende der Liste an
list_old = [1,2,3]
list_new = []
list_new = list_new.extend(list_old)
4. Verwenden Sie for + append()
list_old = [1,2,3]
list_new = []
for i in list_old:
list_new.append(i)
Viertens: tiefe Kopie copy.deepcopy()
- Hinweis: Die obige Methode ist nur eine flache Kopie. Vereinfacht ausgedrückt wird nur eine Ebene der Liste kopiert.
- Zum Beispiel:
list_old = [1,2,3,[4,5,6]] list_new = list_old.copy()
- In diesem Fall werden nur die ersten Listenelemente kopiert, aber wenn die Operation auf die Listenelemente der zweiten Ebene „[4,5,6]“ ausgeführt wird, wirkt sie sich sowohl auf die alte als auch auf die neue Liste aus.
- Zu diesem Zeitpunkt verweisen die Elemente der zweiten Ebene in der alten und der neuen Liste immer noch auf dieselbe Liste „[4,5,6]“.
- Dann müssen Sie Deep Copy verwenden
import copy list_old = [1,2,3,[4,5,6]] list_new = copy.deepcopy(list_old)
- Auf diese Weise wird das Element „[4,5,6]“ der neuen Liste von der alten Liste nicht beeinflusst
- Auf diese Weise wird das Element „[4,5,6]“ der neuen Liste von der alten Liste nicht beeinflusst
———————————————————————————————————————————————— ———————————————————————————————————————————————
_ [ Notwendige Fähigkeiten zum Testen von Software] Ich werde von Zeit zu Zeit testbezogene Materialien hochladen. Sie können auf den QR-Code unter dem Artikel klicken, um ihn zu erhalten~