【发布时间】:2018-06-27 20:59:24
【问题描述】:
我的代码如下所示:
def nue(li):
for i in li:
li.remove(i)
print(li)
li = [1, 2, 3]
nue(li)
但是,运行它会导致:
>>> [2]
更一般地说,如何在迭代列表时删除列表中的第 i 个位置(由于它在嵌套循环中的某些测试失败或类似的原因)?
【问题讨论】:
-
不要。建立一个新列表。
-
如果你想清空列表,为什么不直接使用
li=[]? -
从您正在迭代的列表中删除项目就像锯掉您正坐在的树枝。如果你不是很小心,坏事就会发生。建立一个新列表通常更简单、更快。
-
@rnso 这就像用核武器来消灭蜘蛛
-
在
[1, 2, 3, 4, 5, 6, 7]上尝试删除循环。您应该能够看到模式。
标签: python python-3.x list for-loop