在Python中从列表中删除元素

3lokh

我正在使用python 3.4并只是学习基础知识,所以请耐心等待。

listA = [1,2]
for a in listA:
    listA.remove(a)
print(listA)

假设我得到一个空列表,但是得到的是一个值为'2'的列表。我用大号调试了代码。列表中的值的组合,并且当列表具有单个元素时,for循环退出。为什么没有从列表中删除最后一个元素..?

πόδαςὠκύς

遍历列表时,请勿更改列表。当您删除项目时,列表的索引会更改,因此某些项目将永远不会被评估。请改用列表理解,它会创建一个新列表:

[a for a in list if ...]

换句话说,尝试这样的事情:

>>> A = [1, 2, 3, 4]
>>> A = [a for a in A if a < 4]       # creates new list and evaluates each element of old
>>> A
[1, 2, 3]

使用for循环时,将使用内部计数器。如果您在迭代时将剩余元素向左移动list,则list不会评估剩余元素中最左边的元素注的for声明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章