def purify(ls):
y = ls
for i in ls:
if i % 2 != 0:
y = y.remove(i)
print y
Der folgende Code schlägt fehl, wenn ich die Liste übergebe (4, 5, 5, 4). Es gibt (4, 5, 4) anstatt (4, 4) zurück. Was ist hier falsch ? Ich bin nicht in der Lage zu verstehen, warum Änderungen in der y-Liste die ursprüngliche Liste ls beeinflussen.Entfernen der ungeraden Nummer aus der Liste
Aber ich bin der Bearbeitung der Liste y und nicht die ursprüngliche Liste ls. Ich bin nicht in der Lage zu verstehen, warum die Funktion remove auf der y-Liste die ursprüngliche Liste ls betrifft. –
Die zwei Variablen zeigen auf das gleiche Objekt. Also, wenn du 'x = y = ['a']' und dann 'x [0] = 4 'machst, wird auch' y 'aktualisiert. –