O que é a diferença entre del, remove e aparece nas Listas Python

Aliaksei Yursha 30 janeiro 2023
  1. Remoção da Lista Python por valor
  2. Remoção da lista Python por índice
  3. Remoção da lista Python por del
O que é a diferença entre del, remove e aparece nas Listas Python

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.

Artigo relacionado - Python List