列表删除意外行为

时间:2016-08-31 20:15:06

标签: python python-2.7

我试图通过代码

删除循环中的每个元素来清除python列表
x=list(range(10000))
for i in x:
    x.remove(i)

我认为在此代码 x 之后必须 [] ,而只删除列表中的每个第二个元素。 len(x)= 5000 而不是 0

为什么会这样?我究竟做错了什么。 感谢

4 个答案:

答案 0 :(得分:2)

a.remove(i)搞砸索引是我的猜测。

改为使用

a.clear()

这是清除列表的好方法。

答案 1 :(得分:1)

如果你想要像你一样清除一个python列表,正确的方法是使用x.clear,关于该方法的文档here,现在,如果你想使用一些幻想删除元素条件,只需使用filter,例如清除整个x列表:

x = list(range(10000))
x = filter(lambda x: False, x)
print x

答案 2 :(得分:0)

如果你想实现一个列表对象,在迭代它时会擦除它自己很容易:

expect

答案 3 :(得分:0)

strsplit