Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer en toute sécurité des éléments d'une liste lors d'une itération en Python ?
Suppression d'éléments lors d'une itération de liste
Lors d'une itération sur une liste en Python, il peut devenir nécessaire de supprimer certains éléments en fonction de critères spécifiques . Cependant, tenter de supprimer un élément directement au cours de l’itération peut entraîner un comportement inattendu. C'est là que se pose le besoin de méthodes alternatives.
Compréhension de liste
Une solution consiste à utiliser la compréhension de liste, qui permet de créer une nouvelle liste contenant uniquement les éléments souhaités. Par exemple :
somelist = [x for x in somelist if not determine(x)]
Cette compréhension crée une nouvelle liste qui inclut tous les éléments de somelist où la fonction déterminer() est évaluée à False.
Mutation avec découpage
Une autre approche consiste à muter la liste existante à l'aide de tranches. En attribuant à somelist[:], la liste peut être modifiée pour contenir uniquement les éléments acceptables :
somelist[:] = [x for x in somelist if not determine(x)]
Cette méthode conserve la référence de liste d'origine, ce qui la rend utile lorsque d'autres parties du programme ont besoin d'accéder au liste modifiée.
Itertools
En Python 2 ou 3, itertools peut être utilisé pour réaliser le même résultat. En Python 2 :
from itertools import ifilterfalse somelist[:] = ifilterfalse(determine, somelist)
En Python 3 :
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
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!