Remova todas as ocorrências de um elemento de uma lista em Python

  1. Use a função filter() para remover todas as instâncias de um elemento de uma lista em Python
  2. Use a compreensão de lista para remover todas as instâncias de um elemento de uma lista em Python
  3. Use a função remove() para remover todas as instâncias de um elemento de uma lista em Python

Uma lista em Python permite várias ocorrências do mesmo elemento. Mesmo que o valor de um elemento seja igual aos outros, cada elemento terá um índice diferente. Usando esses números de índice, você pode acessar facilmente quaisquer elementos que desejar.

Mas pode haver algumas situações em que você não deseja várias instâncias do mesmo elemento; então, você certamente desejará remover todas as ocorrências daquele elemento específico de uma lista. Em Python, existem diferentes maneiras de fazer isso.

Use a função filter() para remover todas as instâncias de um elemento de uma lista em Python

Em Python, a filtragem de elementos se torna mais fácil com a ajuda da função filter(). A função filter() leva dois argumentos, o primeiro argumento é uma função e o segundo argumento pode ser conjuntos, listas, tuplas, etc.

Exemplo 1: Função filter() com __ne__

myList = [2, 1, 3, 5, 1, 1, 1, 0]
myList = list(filter((1).__ne__, myList))
print(myList)

Resultado:

[2, 3, 5, 0]

Neste exemplo, você tem uma lista myList da qual deseja remover a ocorrência de 1. A função filter() assume outra função, __ne__, que retornará um bool True ou False com base no fato de o valor 1 estar presente na lista myList ou não. Se o valor 1 estiver presente na lista, ele simplesmente o descartará. Então, tudo o que for retornado pela função filter() será convertido em uma lista usando a função list().

Exemplo 2: Função filter() com função lambda

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1

result = filter(lambda val: val !=  valueToBeRemoved, myList) 
print(list(result)) 

Resultado:

[2, 3, 5, 0]

Em vez de passar a função __ne__, passamos uma função lambda para a função filter().

Da lista myList você pegará cada elemento um por um e armazenará dentro da variável val. Se os elementos presentes dentro de val e valueToBeRemoved não forem iguais, apenas aqueles presentes dentro de val são adicionados à nova variável result. Você deve converter o resultado em uma lista usando a função list().

Use a compreensão de lista para remover todas as instâncias de um elemento de uma lista em Python

Uma compreensão de lista é uma forma abreviada de escrever código. A compreensão da lista é mais rápida do que as funções e loops normais.

Código de exemplo:

myList = [1, 2, 3, 4, 2, 2, 3]
valueToBeRemoved = 2

myList = [value for value in myList if value != valueToBeRemoved]

print(myList)

Resultado:

[1, 3, 4, 3]

Você tem uma lista myList da qual deseja remover a ocorrência do elemento 2. O código principal para remover todas as instâncias de um elemento reside dentro dos colchetes []. Aqui, o loop for será executado primeiro e, em seguida, pegará um valor da lista myList e o armazenará dentro da variável value. Depois disso, se o valor dentro da variável valor e a variável valorToBeRemovido não corresponderem, ela apenas retornará o valor da variável valor e o armazenará na Lista minhaLista. Este processo continuará até que a lista fique vazia. Finalmente, você terá uma lista que conterá a saída desejada.

Use a função remove() para remover todas as instâncias de um elemento de uma lista em Python

A função remove() remove apenas a primeira ocorrência do elemento. Se você quiser remover todas as ocorrências de um elemento usando a função remove(), você pode usar um loop for loop ou while loop.

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
 
try:
    while True:
        myList.remove(valueToBeRemoved)
except ValueError:
    pass
 
print(myList)

Resultado:

[2, 3, 5, 0]

No código acima, você criou uma lista myList, e então você tem uma variável valueToBeRemoved, que conterá o elemento cuja ocorrência você deseja remover da lista neste caso 1. Ao percorrer a lista, se esse elemento estiver dentro da lista, ele será removido da lista usando a função remove().

Artigo relacionado - Python List

  • Encontrar o índice de um item na lista Python
  • Listar o Alfabeto em Python