Quiero eliminar todos los elementos de una lista que contiene (o no contiene) un conjunto de caracteres específicos, sin embargo estoy ejecutando problemas para iterar sobre la lista y eliminar elementos como Yo voy bien. Dos ejemplos más o menos iguales de esto se dan a continuación. Como puede ver, si dos elementos que deben eliminarse se siguen directamente entre sí, el segundo no se elimina.Eliminar elementos de una lista que contiene caracteres específicos
Estoy seguro de que hay una manera muy fácil de hacer esto en python, así que si alguien lo sabe, por favor, ayúdenme - Actualmente estoy haciendo una copia de la lista completa e iterando sobre una, y eliminando elementos en la otra ... No es una buena solución asumo
>>> 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']
lo descubrió:
>>> l = ['1','32','523','336','13525']
>>> [x for x in l if not '2' in x]
['1', '336']
todavía les gustaría saber si hay alguna manera de establecer la iteración hacia atrás un juego cuando se utiliza para x en l aunque.
Dupe-ish: http: //stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python – bhangm
Acepte la respuesta que le ayudó a resolver su problema en lugar de agregar "Resuelto" al título. Haga clic en la marca de verificación verde al lado de una respuesta para aceptarlo. (Si ninguna de las respuestas lo ayudó, por favor agregue una respuesta suya explicando cómo resolvió el problema.) Gracias, y bienvenidos a Stack Overflow. –