【发布时间】:2010-11-24 02:02:01
【问题描述】:
在 Java 中,我可以使用 Iterator 然后使用迭代器的 .remove() 方法删除迭代器返回的最后一个元素,如下所示:
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]
*/
我将如何在 Python 中执行此操作?在 for 循环中迭代列表时,我无法修改列表,因为它会导致内容被跳过(请参阅 here)。而且似乎没有与 Java 的 Iterator 接口等效的东西。
【问题讨论】:
-
我想知道使用反向迭代器是否可以解决问题。对此有什么想法吗?这比复制一份清单要好。
-
stackoverflow.com/questions/1207406/… 它被问了很多...
标签: python list loops iterator python-datamodel