"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso remover com segurança os elementos de uma lista de python enquanto itera com um loop for?

Como posso remover com segurança os elementos de uma lista de python enquanto itera com um loop for?

Postado em 2025-03-05
Navegar:930

How Can I Safely Remove Elements from a Python List While Iterating with a For Loop?

abordando a remoção de elementos nas listas durante as iterações de loop

em Python, tentar remover um item de uma lista enquanto se destaca simultaneamente sobre o uso de um loop pode levar a RunTime. Isso se deve à natureza dinâmica das listas e ao potencial do tamanho da lista mudar durante o processo de iteração. para o item em A: Imprimir (item) A.Remove (Item)

Quando esse código for executado, resultará em um erro após o primeiro elemento ter sido processado, pois a remoção do elemento da lista durante a iteração altera o tamanho da lista, causando o índice dos elementos subsequentes para se tornar invalid. Iterando, várias abordagens alternativas podem ser consideradas:

1. Método POP

a = ["a", "b", "c", "d", "e"]
for item in a:
    print(item)
    a.remove(item)

enquanto a: print (a.pop ())

2. Copie elementos não correspondentes

Se o resultado desejado for remover elementos com base em uma condição específica, uma nova lista pode ser criada pela copiando elementos que não correspondem à condição:

resultado = [] para o item em A: Se a condição for falsa: Result.Append (Item) a = resultado

3. FILTER/LISTA COMPRENSÃO

while a:
    print(a.pop())

# filtro filtro a = filtro (item lambda: ..., a) # Lista de compreensão a = [item para item em um if ...]

conclusão

result = []
for item in a:
    if condition is False:
        result.append(item)
a = result
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3