Je souhaite supprimer tous les éléments d'une liste qui contient (ou ne contient pas) un ensemble de caractères spécifiques. Cependant, je rencontre des problèmes d'itérer sur la liste et de suppression d'éléments Je vais le long. Deux exemples à peu près égaux de ceci sont donnés ci-dessous. Comme vous pouvez le voir, si deux éléments qui doivent être supprimés se suivent directement, le second ne sera pas supprimé.Suppression d'éléments d'une liste contenant des caractères spécifiques
Je suis sûr qu'il y a une façon très simple de faire cela en python, donc si quelqu'un le sait, aidez-moi - je suis en train de faire une copie de la liste entière et d'en oter plus d'une ... Pas une bonne solution, je suppose
>>> l
['1', '32', '523', '336']
>>> for t in l:
... for c in t:
... if c == '2':
... l.remove(t)
... break
...
>>> l
['1', '523', '336']
>>> l = ['1','32','523','336','13525']
>>> for w in l:
... if '2' in w: l.remove(w)
...
>>> l
['1', '523', '336']
figured it out:
>>> l = ['1','32','523','336','13525']
>>> [x for x in l if not '2' in x]
['1', '336']
voudrais encore savoir s'il y a un moyen de régler l'itération arrière d'un ensemble lors de l'utilisation pour x dans l bien que.
Dupe-ish: http: //stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python – bhangm
Veuillez accepter la réponse qui vous a aidé à résoudre votre problème au lieu d'ajouter "Résolu" au titre. Cliquez sur la coche verte à côté d'une réponse pour l'accepter. (Si aucune des réponses ne vous a aidé, veuillez ajouter une réponse de votre choix expliquant comment vous avez résolu le problème.) Merci, et bienvenue dans Stack Overflow. –