Beachten Sie die Vorsichtsmaßnahmen beim Kopieren von Listen in Python. Für weitere Informationen suchen Sie bitte nach "Wert übergeben / Referenz übergeben".
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()
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.