Remova todas as ocorrências de um elemento de uma lista em Python
-
Use a função
filter()
para remover todas as instâncias de um elemento de uma lista em Python - Use a compreensão de lista para remover todas as instâncias de um elemento de uma lista em Python
-
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 result
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 value
e a variável valueToBeRemoved
não corresponderem, ela apenas retornará o valor da variável value
e o armazenará na Lista myList
. 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()
.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn