从python列表中删除元素

安娜

我试图理解这里的逻辑,为什么这段代码没有删除列表中的所有元素?

int_lst = [1, 2, 3, 4, 5, 6]

for i in int_lst:
    int_lst.remove(i)
    print(int_lst)

print(int_lst)  #Output: [2, 4, 6]
切普纳

当您删除一个元素时,该元素之后的所有内容都会有效地移回一个位置。但是迭代器不知道:它只是将指针前进到下一个元素,跳过应该是下一个绑定到的值i

详细地说,i从 1 开始。您将其删除,现在 2 位于迭代器的当前位置。迭代器前进,现在 3 位于当前位置并绑定到i

换句话说,每次删除元素时,除了迭代器将执行的显式推进之外,您还有效地推进了迭代器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章