Wie funktioniert del operator in list in python?
Ich habe das gelesenpython docs
zumlist
und wie diedel
Operatoren funktioniert, aber ich brauche eine Erklärung für das folgende Verhalten
In diesem Fall,c
undl
verweist auf dasselbe Objekt (Liste). Wenn Sie also Änderungen an einem Objekt vornehmen, wirkt sich dies auf das andere aus. Wenn Sie jedoch eines löschen, wird das Objekt nicht gelöscht. Was passiert hier? Ist es nur daspointer
zum Listenobjekt geht verloren?
>>> l = [1,2,3]
>>> c = l
>>> c.append(4)
>>> c
[1, 2, 3, 4]
>>> l
[1, 2, 3, 4]
>>> del c
>>> l
[1, 2, 3, 4]
>>> c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined
Löschen durch Slice-Operation>>> l
[1, 2, 3, 4]
>>> del l[::2]
>>> l
[2, 4]
l[::2]
gibt die neue Liste zurück. aberdel l[::2]
löscht vor Ort. Wird in diesem Fall keine neue Liste zurückgegeben? Was genau passiert hier?