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

  1. Remoção da Lista Python por valor
  2. Remoção da lista Python por índice
  3. 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.

Artigo relacionado - Python List

  • Como criar uma lista com um tamanho específico em Python
  • Como reverter uma lista em Python