Maison > développement back-end > Tutoriel Python > Comment puis-je supprimer en toute sécurité des éléments d'une liste Python lors d'une itération ?

Comment puis-je supprimer en toute sécurité des éléments d'une liste Python lors d'une itération ?

DDD
Libérer: 2024-12-02 20:18:15
original
672 Les gens l'ont consulté

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

Supprimer des éléments de liste dans une boucle For Python

Lors de l'itération dans une liste à l'aide d'une boucle for, il n'est pas possible de supprimer des éléments directement dans cette boucle. Tenter de le faire entraînera des erreurs, comme le montre l'exemple ci-dessous :

a = ["a", "b", "c", "d", "e"]

for item in a:
    print(item)
    a.remove(item)  # This will cause an error
Copier après la connexion

Approches alternatives

Pour supprimer efficacement des éléments de liste dans une boucle, envisagez l'une des les méthodes suivantes :

  • Utilisez un While Boucle :
while a:
    print(a.pop())
Copier après la connexion
  • Créer une nouvelle liste avec des éléments filtrés :
result = []
for item in a:
    if condition is False:  # Replace condition with your own criteria
        result.append(item)
a = result
Copier après la connexion
  • Filtre ou liste Compréhension :
a = filter(lambda item:... , a)  # Replace ... with your condition
Copier après la connexion
a = [item for item in a if ...]  # Replace ... with your condition
Copier après la connexion

Suppression conditionnelle

Si vous souhaitez supprimer des éléments en fonction de conditions spécifiques, suivez ces directives :

  • Pour quelques suppressions : Utilisez la fonction filter() ou une liste compréhension pour créer une nouvelle liste excluant les éléments indésirables.
  • Pour les suppressions étendues : Créez une nouvelle liste et copiez manuellement les éléments souhaités tout en ignorant ceux qui correspondent à votre condition.
  • Pour les suppressions sur place : Utilisez une boucle while avec la méthode pop() pour supprimer des éléments un par un jusqu'à ce que la liste soit vide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal