2011-05-08 44 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] 
相關問題