我能在Python中循环遍历一个列表并向其中添加元素吗?

4
这似乎不起作用,但我不确定原因是什么:

可能是重复问题:
Python:在迭代时添加元素到列表

for n in poss:
         poss.append(n+6)

是否有规定说我不能在循环遍历列表时向其附加项目?


需要使用副本。使用切片:poss[::],元组:tuple(poss)或重复列表:list(poss),其与切片形式相同... - the wolf
2个回答

3

在遍历列表时添加元素会导致无限循环,因为每次迭代都会向列表中添加更多的元素。

您应该遍历列表的副本。例如,请尝试以下操作:

for n in tuple(poss):
    poss.append(n+6)

3

您的代码实际上是可以工作的,但是由于可能不断增长,它永远不会结束。
请尝试:

poss = [1,2]

for n in poss:
    poss.append(n+6)
    if n > 10:
        print poss
        break

产生:

[1, 2, 7, 8, 13, 14, 19]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接