Python - mehrere Möglichkeiten, eine Liste (Liste) zu kopieren

  • 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.

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 hier eine Bildbeschreibung ein
  • 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
    Fügen Sie hier eine Bildbeschreibung ein

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
    Fügen Sie hier eine Bildbeschreibung ein

  • Das Hinzufügen eines Elements zur neuen Liste hat keine Auswirkungen auf die alte Liste.
    Fügen Sie hier eine Bildbeschreibung ein

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]“.
      Fügen Sie hier eine Bildbeschreibung ein
  • 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
      Fügen Sie hier eine Bildbeschreibung ein

———————————————————————————————————————————————— ———————————————————————————————————————————————
_ [ 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~
Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/weixin_40883833/article/details/129783776
Recomendado
Clasificación