文章詳情頁
python - 用生成器迭代數(shù)據(jù)在文件和IDLE中運(yùn)行結(jié)果不一致,
瀏覽:112日期:2022-06-30 18:38:38
問題描述
使用生成器迭代數(shù)據(jù)構(gòu)造丟失問題,同樣的代碼運(yùn)行結(jié)果不一致:
文件方式運(yùn)行得到結(jié)果為:5 2 1 0
Python自帶IDLE運(yùn)行得到結(jié)果為: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:不要對正在遍歷的對象進(jìn)行修改, 那樣會導(dǎo)致索引混亂, 無法達(dá)到我們想要的結(jié)果, 可以通過enumerate查看遍歷過程中, 索引的變化
for index, n in enumerate(c): # index 為取到的索引值 print(index, n) if n == 5:c.send(3)
上一條:python - 使用requests爬取[大街網(wǎng)]職位信息,嘗試多次失敗,幫忙看看我的代碼有什么問題?應(yīng)該怎么改呢?下一條:各位python爬蟲大??催^來,這個網(wǎng)站的反爬蟲怎么處理
相關(guān)文章:
1. android - weex 項(xiàng)目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點(diǎn)3. pdo 寫入到數(shù)據(jù)庫的內(nèi)容為中文的時候?qū)懭雭y碼4. PHPExcel表格導(dǎo)入數(shù)據(jù)庫怎么導(dǎo)入5. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;8. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?9. 微信渠道二維碼怎么使用?10. javascript - 微信上傳圖文素材報錯
排行榜

熱門標(biāo)簽