Como o operador del funciona na lista em python?
Eu li opython docs
paralist
e como odel
operadores funciona, mas preciso de explicação para o seguinte comportamento
Nesse caso,c
el
aponta para o mesmo objeto (lista), portanto, fazer alterações em um afeta o outro, mas excluir um não exclui o objeto. Então o que acontece aqui? É apenas opointer
para o objeto de lista está perdido?
>>> 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
Exclusão por operação de fatia>>> l
[1, 2, 3, 4]
>>> del l[::2]
>>> l
[2, 4]
l[::2]
retorna a nova lista. masdel l[::2]
faz a exclusão no local. Portanto, neste caso, uma nova lista não está sendo retornada? O que exatamente está acontecendo aqui?