使用生成器迭代資料建構遺失問題,同樣的程式碼運行結果不一致:
檔案方式運行得到結果為:5 2 1 0
Python自備IDLE運行得到結果為:5 3 2 1 0
def countdown(n):
while n >= 0:
newvalue = (yield n)
if newvalue is not None:
n = newvalue
else:
n -= 1
c = countdown(5)
for n in c:
print(n)
if n == 5:
c.send(3)
#
不要對正在遍歷的對象進行修改, 那樣會導致索引混亂, 無法達到我們想要的結果, 可以通過enumerate查看遍歷過程中, 索引的變化