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

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

Susan Sarandon
Libérer: 2024-12-25 06:10:16
original
1083 Les gens l'ont consulté

How to Safely Remove Items from a List While Iterating in Python?

Suppression itérative d'éléments d'une liste

Problème

Itération dans une liste de tuples en Python, tentative de suppression d'éléments en fonction de certains critères :

for tup in somelist:
    if determine(tup):
         # How to remove 'tup'?
Copier après la connexion

Solution

Pour supprimer des éléments lors de l'itération, un L'approche consiste à créer une nouvelle liste contenant uniquement les éléments souhaités :

somelist = [x for x in somelist if not determine(x)]
Copier après la connexion

Alternativement, attribuer à la tranche somelist[:] mute la liste existante :

somelist[:] = [x for x in somelist if not determine(x)]
Copier après la connexion

Pour une mutation directe, le Le module itertools fournit la fonction filterfalse :

  • Python 2 :
from itertools import ifilterfalse
somelist[:] = ifilterfalse(determine, somelist)
Copier après la connexion
  • Python 3 :
from itertools import filterfalse
somelist[:] = filterfalse(determine, somelist)
Copier après la connexion

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!

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