第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python 生成器實(shí)現(xiàn)方式問題求解答!

Python 生成器實(shí)現(xiàn)方式問題求解答!

慕桂英3389331 2019-12-02 04:04:32
defaccumulate(iterable,func=operator.add):'Returnrunningtotals'#accumulate([1,2,3,4,5])-->1361015#accumulate([1,2,3,4,5],operator.mul)-->12624120it=iter(iterable)try:total=next(it)exceptStopIteration:returnyieldtotalforelementinit:total=func(total,element)yieldtotal這是Python文檔關(guān)于itertools.accumulate函數(shù)的說明https://docs.python.org/zh-cn...在我的理解里(應(yīng)該是錯(cuò)誤的理解),total=next(it)總會(huì)取到第一個(gè)值,而永遠(yuǎn)不會(huì)拋出異常,誰能告訴會(huì)拋出這個(gè)異常的實(shí)例呢?請問在什么情況下,調(diào)用這個(gè)函數(shù)會(huì)拋出StopIteration異常呢,傳入一個(gè)可迭代對象實(shí)參后,try:total=next(it),不是應(yīng)該總是可以取到第一個(gè)元素嗎,為什么需要exceptStopIteration呢,在什么情況下才會(huì)拋出這個(gè)異常呢?感謝回答,我明白next取不到下一個(gè)元素的時(shí)候就拋出StopIteration,但是這段代碼運(yùn)行后取一次next然后就會(huì)進(jìn)入forelementinit:的這個(gè)循環(huán)中,并在這個(gè)循環(huán)結(jié)束時(shí)就結(jié)束這個(gè)函數(shù).而不會(huì)再執(zhí)行上面的next,那么怎么會(huì)拋出stopIteration呢?可以具個(gè)具體的實(shí)例嗎就是說next在這段代碼中是否只會(huì)執(zhí)行一次呢,而執(zhí)行一次的話,不是應(yīng)該"總是"可以取到第一個(gè)元素而不會(huì)拋出異常嗎?
查看完整描述

2 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

當(dāng)next取不到下一個(gè)元素的時(shí)候就會(huì)出現(xiàn)StopIteration,其實(shí)就是說StopIteration是作為一個(gè)列表遍歷的結(jié)尾標(biāo)識存在的。

查看完整回答
反對 回復(fù) 2019-12-03
  • 2 回答
  • 0 關(guān)注
  • 480 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號