我正在使用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] 删除。
我来说两句