我知道有更好的方法可以做到这一点,实际上并不是我想要做的,但我想知道它为什么不起作用?
x = [13, 3, 9, 41]
for i in x:
x.remove(i)
print(x)
[3, 41]
列表不应该为空吗?
答案 0 :(得分:1)
你不应该在循环中修改列表,试试这个:
x = [13, 3, 9, 41]
for i in x[:]:
x.remove(i)
print(x)
这会循环遍历x
的副本,但会从x
删除元素。
这是Python strange behavior in for loop or lists的副本,你可以在那里找到更全面的解释。
答案 1 :(得分:1)