Remover vários elementos de uma lista em Python

Jay Prakash Gupta 30 janeiro 2023
  1. Remover vários elementos de uma lista usando declarações de controle if...else
  2. Excluindo vários elementos de uma lista usando o método de compreensão de lista em Python
  3. Remover vários elementos de uma lista usando a divisão de listas
  4. Remova vários elementos de uma lista usando o loop for
Remover vários elementos de uma lista em Python

Para remover vários valores de uma lista Python, podemos remover os valores reais da lista ou os índices de valores a serem removidos da lista. Podemos usar instruções de controle if...else, compreensão de lista, divisão de lista e loops for para remover vários elementos de uma lista em Python.

Remover vários elementos de uma lista usando declarações de controle if...else

Podemos usar instruções de controle if...else para remover vários valores de uma lista em Python se os valores satisfizerem uma determinada condição. Os elementos também podem ser removidos se seus índices satisfizerem uma determinada condição.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
print("Original list : ", list1)


for ele in list1:
    if (ele % 2) != 0:
        list1.remove(ele)

print("List after deleting all values which are odd : ", list1)

Produção:

Original list :  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
List after removing all the odd values :  [2, 4, 6, 8, 10, 20]

Aqui, temos uma lista de inteiros e precisamos remover os elementos com valor ímpar da lista. Nesse caso, percorremos todos os elementos da lista l1 e removemos um elemento da lista usando o método remove() se o elemento tiver um valor ímpar.

Excluindo vários elementos de uma lista usando o método de compreensão de lista em Python

Em Python, compreensão de lista se refere ao processo de geração de uma nova lista a partir de uma lista existente. A compreensão da lista também pode ser usada para remover vários elementos da lista. Podemos criar uma nova lista removendo os valores a serem removidos da lista original.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
l2 = [x for x in l1 if x % 2 == 0]

print("Original list : ", l1)
print("List after deleting all the odd values present in List : ", l2)

Produção:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after deleting all the odd values present in List :  [2, 4, 6, 8, 10, 20, 80]

Aqui, criamos a lista l2 a partir da lista l1, que contém apenas todos os valores pares em l1. Em outras palavras, podemos dizer que criamos uma nova lista l2 a partir da lista existente l1 removendo todos os valores ímpares da lista l1.

Remover vários elementos de uma lista usando a divisão de listas

Também podemos remover vários elementos de uma lista usando o método de divisão de lista. Aqui podemos colocar a faixa do elemento do início ao último índice do elemento que queremos remover da lista no método del.

Em vez de usar um único índice no método del, usamos uma gama de valores desde o início até o último índice dos elementos que queremos remover da lista. Isso removerá os elementos contíguos da lista. Devemos notar que o índice de valores começa em 0 em Python para listas.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

del l1[2:5]

print("List after removing values at index 2, 3 and 4 : ", l1)

Produção:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 2, 3 and 4 :  [1, 2, 6, 7, 8, 9, 10, 20, 80, 99]

Ele remove os valores nos índices 2, 3 e 4 da lista l1 usando o método del.

Uma coisa importante a ser observada aqui é que o primeiro índice 2 é inclusivo, isto é, o elemento no índice 2 na lista 3 é removido enquanto o último índice é um valor exclusivo, o que significa que o elemento no índice 5 na lista 6 não é removido.

Remova vários elementos de uma lista usando o loop for

Também podemos usar os loops for para remover vários elementos de uma lista.

Para aplicar este método, temos que armazenar os índices dos elementos que queremos excluir da lista. Mas a remoção aleatória do elemento resultará na alteração dos valores dos índices. Nossa estratégia inteligente será deletar o elemento cuja posição na lista é maior. Portanto, o valor do elemento em outros índices não será alterado. Agora, vamos classificar a lista em ordem decrescente para excluir o elemento com um índice mais alto primeiro. O código para essa abordagem é mostrado abaixo.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

indexes_to_be_removed = [0, 2, 5]

for idx in sorted(indexes_to_be_removed, reverse=True):
    del l1[idx]

print("List after removing values at index 0, 2 and 5: ", l1)

Produção:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 0, 2 and 5:  [3, 5, 6, 8, 9, 10, 20, 80, 99]

Ele remove os valores nos índices 0, 2 e 5 da lista l1 usando o método del.

Artigo relacionado - Python List