Actualmente estoy desarrollando un programa en python y me acabo de dar cuenta de que algo andaba mal con el bucle foreach en el lenguaje, o tal vez la estructura de la lista. Voy a dar un ejemplo genérico de mi problema de simplificar, desde que sale el mismo comportamiento erróneo tanto en mi programa y mi genérica ejemplo:Comportamiento extraño de Python en for loop o listas
x = [1,2,2,2,2]
for i in x:
x.remove(i)
print x
Bueno, el problema aquí es simple, que a pesar de que este código se suponía que eliminaría todos los elementos de una lista. Bueno, el problema es que después de su ejecución, siempre obtengo 2 elementos restantes en la lista.
¿Qué estoy haciendo mal? Gracias por toda la ayuda de antemano.
Editar: No quiero vaciar una lista, esto es sólo un ejemplo ...
El problema que experimenta tiene soluciones a continuación, pero no puedo evitar pensar que se debe acortar a "x = []". ¿Podría ser más interesante si publica el código real que le causa problemas? – gnud
Deberías publicar tu problema real. list.remove es bastante ineficiente, porque tiene que buscar en la lista, y luego desplazar hacia delante todos los elementos que siguen a la eliminación. – Miles