2011-05-08 46 views
0

可能重复:
Python: Adding element to list while iterating我可以将项目追加到我在Python中循环的列表中吗?

这似乎并不工作,但我不知道为什么:

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

有一些规定说,我可以将项目追加到我目前正在循环的列表中?

+0

需要使用一个副本。使用切片:'poss [::]'一个元组:'元组(poss)'或者一个重复列表:'list(poss)',它与切片形式相同... – 2011-05-09 00:24:35

回答

1

在迭代时追加到列表将进入无限循环,因为您在每次迭代中向循环添加更多元素。

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

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

你的代码实际工作,但从来没有结束,因为POSS不断将越来越大。
尝试:

poss = [1,2] 

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

生产:

[1, 2, 7, 8, 13, 14, 19] 
相关问题