[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden

Einführung

Python: 3.7.4

Kopieren Sie Liste a nach Liste b, so wie Sie einen Wert kopieren würden Angenommen, Sie ändern nur das mittlere Element der Liste. B.

copy_test.py


a = [1, 2, 3, 4, 5]
b = a
b[2] =5
print(a)
print(b)

Ausführungsergebnis (Fehlerbeispiel)

Aus irgendeinem Grund ändert sich auch das Element in der Mitte der Liste a.

Ausgabe


[1, 2, 5, 4, 5]
[1, 2, 5, 4, 5]

Lösung 1: Verwenden Sie das Kopiermodul

Mit dem Kopiermodul sind Liste a und Liste b nicht mehr verknüpft.

copy_test2.py


import copy

a = [1, 2, 3, 4, 5]
b = copy.deepcopy(a)
b[2] =5
print(a)
print(b)

Lösung 2: Verwenden Sie Scheiben

Wenn Sie ein [:] schreiben, wird alles im Element an Liste b übergeben.

copy_test3.py


a = [1, 2, 3, 4, 5]
b = a[:]
b[2] =5
print(a)
print(b)

<2019/12/22: Von Shiracamus> copy.deepcopy erstellt eine vollständige Kopie, copy.copy und Slice-Kopien sind jedoch flache Kopien. Der Effekt bleibt bei mehreren Listen bestehen. → Lösung 2 scheint bei mehreren Listen nicht zu funktionieren.

copy_test4.py


a = [[1], [2], [3], [4], [5]]
b = a[:]
b[2][0] = 5
print(a)
print(b)

Wie Sie bereits betont haben, verknüpfen mehrere Listen die Ergebnisse.

Ausgabe


[[1], [2], [5], [4], [5]]
[[1], [2], [5], [4], [5]]

Ausführungsergebnis (Erfolgsbeispiel)

Wie erwartet hat sich nur das mittlere Element von Liste b geändert. Es scheint sicherer zu sein, Lösung 1 zu verwenden, da Lösung 2 das Problem hat, dass sie nicht mit mehreren Listen verwendet werden kann.

Ausgabe


[1, 2, 3, 4, 5]
[1, 2, 5, 4, 5]

Recommended Posts

[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
Eine Lösung für das Problem, dass Dateien mit [und] nicht in glob.glob () aufgeführt sind
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Python-Listeneinschlussnotation, die leicht zu vergessen ist
Python Amateur versucht die Liste zusammenzufassen ②
Lösung für das Problem, dass der Build bei der Installation von OpenCV (PEP517) nicht beendet wird
Beachten Sie beim Initialisieren einer Liste in Python
So unterlisten Sie eine Liste mit den verbleibenden Elementen, indem Sie sie in bestimmte Längen unterteilen
Eine Geschichte, die beim Versuch, die Python-Version mit GCE zu aktualisieren, hängen blieb
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So finden Sie das erste Element, das den Kriterien in der Python-Liste entspricht
So lösen Sie das Problem, dass beim Ausführen des PyQt-Systems mit Jupyter oder Spyder IDE häufig ein Neustart des Kernels auftritt
Stellen Sie sicher, dass alle Elemente in der Liste in Python identisch sind
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Zu beachtende Punkte beim Löschen mehrerer Elemente aus der Liste
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
[Python3] Liste der Websites, auf die ich beim Starten von Python verwiesen habe
Suche nach einer Lösung für das N-Queen-Problem mit einem genetischen Algorithmus (1)
Extrahieren Sie den Wert, der einem Wert am nächsten kommt, aus einem Listenelement in Python
Python> Liste> Anhängen () und Erweitern ()> Anhängen: Liste hinzufügen | Erweitern: Element der Liste hinzufügen | Liste hinzufügen mit + =
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Importieren Sie ein Modul, das häufig beim Starten des Python-Interpreters verwendet wird
Ein Skript, das 0, 1 an die erste Python-Primzahl zurückgibt
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Lösung für das Problem, dass die Anzeige beschädigt ist, wenn der Befehl .exe in der while-Schleife in wsl2 enthalten ist
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Vermeiden Sie das Phänomen, dass bei der Ausgabe von Python CSV Leerzeilen eingefügt werden
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
LeetCode 141. Lösungsbeispiel für verknüpfte Listenzyklen (Python)
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Erweiterung von Python um C oder C ++ (wenn es mehrere Argumente gibt, wenn eine Liste von der Python-Seite übergeben wird)
Eine Funktion, die eine Liste mit Elementen mit bis zu 3 Ziffern generiert
Wie man mit dem Problem umgeht, dass die Erstellung fehlschlägt, wenn CI / CD von Python Function mit AWS Amplify
Die NVM-Prüfsumme ist ungültig, eine Lösung für das Problem, das das kabelgebundene LAN von Intel unter Linux nicht erkennt.
10 Python-Fehler, die Anfängern häufig sind
Python Amateur versucht die Liste zusammenzufassen ①
So schreiben Sie eine Zeichenfolge, wenn Python mehrere Zeilen enthält
[Python] Ein Programm, das die Partitur rundet
Umgang mit dem Problem, dass japanische Zeichen bei der Ausgabe von Protokollen mit dem JSON-Protokollformatierer verstümmelt sind
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus (Python-Code) zu lösen.
Atcoder-Anfängerwettbewerb A, B Zusammenfassung der Eingabe, die tendenziell ein Problem für Python darstellt
Sind Php / Ruby / Python, die nur ausgeführt werden, wenn die Datei direkt aufgerufen wird
Lösung für das Problem, das Sie nicht aktivieren können, indem Sie conda in pyenv setzen
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
[Python] So zeigen Sie die Elemente der Liste nebeneinander an
[Python] Checklistenelemente alle, alle
Berechnen wir das statistische Problem mit Python
So löschen Sie einen Taple in einer Liste (Python)
Kopieren Sie die Liste in Python
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
[Algorithmus x Python] Verwendung der Liste
Beachten Sie, dass die Listeneinschlussnotation von Python immer verwirrend ist