O que é a diferença entre del, remove e aparece nas Listas Python
- Remoção da Lista Python por valor
- Remoção da lista Python por índice
-
Remoção da lista Python por
del
Como muitas vezes acontece, Python oferece vários meios para alcançar a mesma coisa.
Se você precisar excluir um elemento de uma lista, você pode usar qualquer um dos seguintes meios
list.remove()
ou list.pop()
funções ou a instrução del
incorporada.
Nos exemplos abaixo, vamos cobrir cada uma dessas abordagens e discutir suas diferenças e trade-offs.
Remoção da Lista Python por valor
list.remove()
remove o primeiro item da lista, cujo valor é igual ao argumento de passagem.
Ao utilizar este método, você normalmente não sabe ou se importa com o índice do item a ser removido.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.remove('Cindy')
>>> names
['Bob', 'Noah']
Seja cuidadoso ao utilizar este método.
Se um item que você está tentando excluir não existe na lista,
o tempo de execução Python vai lançar um ValueError
.
>>> names = ['Bob', 'Noah']
>>> names.remove('Cindy')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
Para navegar nesta edição, você terá que verificar se um item
existe na lista antes de tentar list.remove()
it.
>>> names = ['Bob', 'Noah']
>>> if 'Cindy' in names:
... names.remove('Cindy')
...
>>>
Remoção da lista Python por índice
Se você conhece o índice de um elemento que você quer remover, você pode utilizar o método list.pop()
.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop(1)
'Cindy'
>>> names
['Bob', 'Noah']
O método list.pop()
remove um elemento no índice especificado e o retorna.
Se você não der nenhum índice para list.pop()
, ele irá remover o último elemento da lista.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop()
'Noah'
>>> names
['Bob', 'Cindy']
Remoção da lista Python por del
Outra opção para remover um elemento de uma lista por índice é utilizar a instrução del
incorporada.
Ao contrário de list.pop()
a instrução del
não retorna um valor removido.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[1]
>>> names
['Bob', 'Noah']
O comando del
também é mais flexível do que list.pop()
.
Você pode utilizá-lo para remover intervalos de valores da lista.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[0:2]
>>> names
['Noah']
Você também pode utilizá-la para limpar a lista inteira.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[:]
>>> names
[]
Como você pode ver pelo acima, cada abordagem tem casos de uso ligeiramente diferentes.
Ainda assim, se tudo que você precisa é remover um único elemento da lista sem lembrar seu valor, então qualquer um dos métodos funcionará.
Use o que lê melhor no contexto mais amplo do seu código.