文章詳情頁
python - 用生成器迭代數據在文件和IDLE中運行結果不一致,
瀏覽:101日期: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)
問題解答
回答1:不要對正在遍歷的對象進行修改, 那樣會導致索引混亂, 無法達到我們想要的結果, 可以通過enumerate查看遍歷過程中, 索引的變化
for index, n in enumerate(c): # index 為取到的索引值 print(index, n) if n == 5:c.send(3)
相關文章:
1. 代理 - 一個nginx需求,訪問web服務時,若用戶為測試用戶則轉發到web服務的測試版本2. javascript - webpack打包后的bundlejs文件代碼不知道什么意思.3. java后臺導出頁面到pdf4. javascript - 在靜態頁面上用load 引入的頁面文件問題?5. java - instance method中 static后的<K>是什么意思?6. css3 - css如何實現素描描邊效果7. css - 關于ul的布局8. css - 如何使用 vue transition 實現 ios 按鈕一樣的平滑切換效果9. javascript - vue組件通過eventBus通信時,報錯a.$on is not a function10. html - 哪些情況下float會失效?
排行榜
