【发布时间】:2010-10-19 01:08:20
【问题描述】:
我目前正在用 python 开发一个程序,我刚刚注意到语言中的 foreach 循环或列表结构有问题。我将给出一个通用示例来简化我的问题,因为我的程序和通用示例都出现了相同的错误行为:
x = [1,2,2,2,2]
for i in x:
x.remove(i)
print x
好吧,这里的问题很简单,我认为这段代码应该从列表中删除所有元素。好吧,问题是在它执行之后,我总是在列表中得到 2 个剩余元素。
我做错了什么?感谢您提前提供的所有帮助。
编辑:我不想清空列表,这只是一个例子......
【问题讨论】:
-
您遇到的问题有以下解决方案——但我不禁认为应该缩短为“x = []”。如果您发布导致问题的真实代码可能会更有趣?
-
你应该发布你真正的问题。 list.remove 效率很低,因为它必须搜索列表,然后将删除后的所有元素向前移动。