您的位置:首頁技術文章
文章詳情頁

python - 用生成器迭代數據在文件和IDLE中運行結果不一致,

瀏覽:78日期:2022-06-30 18:38:38

問題描述

使用生成器迭代數據構造丟失問題,同樣的代碼運行結果不一致:

文件方式運行得到結果為: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 = newvalueelse: n -= 1c = countdown(5)for n in c: print(n) if n == 5:c.send(3)

python - 用生成器迭代數據在文件和IDLE中運行結果不一致,

問題解答

回答1:

不要對正在遍歷的對象進行修改, 那樣會導致索引混亂, 無法達到我們想要的結果, 可以通過enumerate查看遍歷過程中, 索引的變化

for index, n in enumerate(c): # index 為取到的索引值 print(index, n) if n == 5:c.send(3)

標簽: Python 編程
相關文章:
国产综合久久一区二区三区