En Java que pueda hacer mediante el uso de un Iterator
y luego utilizando el método del iterador .remove()
para eliminar el último elemento devuelto por el iterador, así:Eliminar elementos a medida que atraviesan una lista en Python
import java.util.*;
public class ConcurrentMod {
public static void main(String[] args) {
List<String> colors = new ArrayList<String>(Arrays.asList("red", "green", "blue", "purple"));
for (Iterator<String> it = colors.iterator(); it.hasNext();) {
String color = it.next();
System.out.println(color);
if (color.equals("green"))
it.remove();
}
System.out.println("At the end, colors = " + colors);
}
}
/* Outputs:
red
green
blue
purple
At the end, colors = [red, blue, purple]
*/
¿Cómo haría esto en Python? No puedo modificar la lista mientras la repito en un ciclo for porque hace que se omitan cosas (consulte here). Y no parece haber un equivalente de la interfaz Iterator
de Java.
I pregunto si usar un iterador reverso podría ser una solución. Tiene alguna idea sobre esto? Sería mejor que hacer una copia de una lista. –
http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python Se pregunta mucho ... –