Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer efficacement des éléments d'une liste lors d'une itération en Python ?
Itérer sur des listes tout en supprimant simultanément des éléments peut présenter des défis. Un scénario courant consiste à tenter de supprimer un élément en fonction d’un critère spécifique. Déterminer la méthode appropriée pour supprimer un élément est crucial dans de telles situations.
Considérez ces deux approches efficaces :
Créer un nouveau liste contenant uniquement les éléments souhaités en utilisant la compréhension de liste :
somelist = [x for x in somelist if not determine(x)]
Vous pouvez également modifier la liste existante directement en l'attribuant à sa tranche :
somelist[:] = [x for x in somelist if not determine(x)]
Cette approche est avantageuse si plusieurs références à une liste existent et doivent refléter les modifications.
Itertools offre une approche pratique car eh bien :
Python 2 :
from itertools import ifilterfalse somelist[:] = ifilterfalse(determine, somelist)
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!