Dinge, die Sie beim Kopieren von Python-Listen beachten sollten

Einführung

Beachten Sie die Vorsichtsmaßnahmen beim Kopieren von Listen in Python. Für weitere Informationen suchen Sie bitte nach "Wert übergeben / Referenz übergeben".

Achtung

Schauen Sie sich den folgenden Code an, bevor Sie ihn in Worten erklären.

X = 2
Y = X
Y = 5
print('Y = ', Y)
print('X = ', X)

Wenn Sie das tun, natürlich

Y =  5
X =  2

Das Ergebnis wird erhalten. Versuchen Sie als Nächstes, den folgenden Code auszuführen.

i = [1, 2, 3, 4, 5]
j = i
j[0] = 100
print('j = ', j)
print('i = ', i)

Hier wird eine Liste mit dem Namen i festgelegt, i wird j zugewiesen, der Wert der Indexnummer 0 von j wird auf 100 gesetzt und i bzw. j werden ausgegeben. Das Ergebnis ist

j =  [100, 2, 3, 4, 5]
i =  [100, 2, 3, 4, 5]

Und ich habe mich auch verändert. Die Ursache hierfür kann durch den folgenden Code bestätigt werden.

print(id(X))
print(id(Y))
print(id(i))
print(id(j))
4436251808
4436251904
4304286176
4304286176

Es stellt sich heraus, dass X und Y mit den zugewiesenen Werten unterschiedliche IDs haben, während i und j mit der zugewiesenen Liste dieselbe ID haben. Daher werden in der Liste die in j vorgenommenen Änderungen auch in i wiedergegeben. Daher beim Kopieren der Liste,

j = i.copy()

Schließlich

Ich habe gehört, dass Sie Listen selten kopieren, daher denke ich nicht, dass Sie sie sehr oft verwenden werden, aber achten Sie darauf, dass Sie nicht zu Fehlern führen.

Recommended Posts

Dinge, die Sie beim Kopieren von Python-Listen beachten sollten
Dinge, die Sie bei der Entwicklung von Crawlern in Python beachten sollten
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python2 beachten sollten
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python 3 beachten sollten
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
Dinge, die Sie bei der Verwendung von Python beachten sollten, wenn Sie MATLAB verwenden
Beachten Sie Folgendes, wenn Sie automatisierte Tools für die Werkstatt in Python erstellen
Beachten Sie Folgendes, wenn Sie mit ndarray einen Zeilenvektor in einen Spaltenvektor konvertieren
Beachten Sie beim Initialisieren einer Liste in Python
Dinge, die Sie bei der Stapelvorhersage mit der GCP ML Engine beachten sollten
Dinge, auf die Sie achten müssen, wenn Sie Standardargumente in Python verwenden
Zusammenfassung der Punkte, die beim Schreiben eines Programms zu beachten sind, das unter Python 2.5 ausgeführt wird
Fehler beim Versuch, psycopg2 in Python zu installieren
Beenden bei Verwendung von Python in Terminal (Mac)
Ich möchte am Ende etwas mit Python machen
So löschen Sie stdout in Python
Melden Sie sich auf der Website in Python an
Achtung bei os.mkdir in Python
Sprechen mit Python [Text zu Sprache]
Wie man in Python entwickelt
Post an Slack in Python
Praktische Schreibmethode beim kontinuierlichen Anhängen an die Liste in Python
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
[Unterprozess] Wenn Sie ein anderes Python-Programm in Python-Code ausführen möchten
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Dinge, die Sie beim Benennen des dynamischen Routings in nuxt.js beachten sollten
Konvertieren Sie Markdown in Python in PDF
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
Im Python-Befehl zeigt Python auf Python3.8
Zeitzonenspezifikation beim Konvertieren einer Zeichenfolge in einen Datums- / Uhrzeittyp mit Python
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Versuchen Sie, Trace in Python zu berechnen
Vorsichtsmaßnahmen beim Übergeben von def an sortierte und gruppierte Funktionen in Python? ??
Atom: Hinweis zum Einrückungsfehler beim Kopieren des Python-Skripts in die Shell
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
6 Möglichkeiten zum Stringen von Objekten in Python
Verwendung von PubChem mit Python
Artikel zum Lesen, wenn Blenders Python-Skriptcode in 2.80 nicht funktioniert
Was tun, wenn ModuleNotFoundError: In Python tritt kein Modul mit dem Namen 'XXX' auf
Vorsichtsmaßnahmen beim Festlegen von Standardwerten für Argumente in Python-Funktionsdefinitionen
Umgang mit Japanisch mit Python
Eine Alternative zu "Pause" in Python
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Bei Verwendung regulärer Ausdrücke in Python
Beim Schreiben eines Programms in Python
Dinge, auf die Sie beim Erstellen einer Python-Umgebung auf einem Mac achten sollten
So blenden Sie die Eingabeaufforderung aus, wenn Sie Python in Visual Studio 2015 ausführen
So schreiben Sie eine Zeichenfolge, wenn Python mehrere Zeilen enthält
Ich habe versucht, PLSA in Python zu implementieren
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Versuchen Sie, sich mit Python bei qiita anzumelden
Installieren Sie Pyaudio, um Wellen in Python zu spielen
Ich habe versucht, Permutation in Python zu implementieren
Methode zum Erstellen einer Python-Umgebung in Xcode 6
Dynamisches Definieren von Variablen in Python