亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

迭代多個生成器

迭代多個生成器

繁星coding 2021-04-05 08:54:47
我有多個生成器函數,這些函數可生成附加到列表中的對象。有很多重復的代碼,是否有可能將其最小化(對于Python 3.5+)?發電機:def gen1(obj):    if obj == 'something':        yield ValueError()def gen2(obj):    if obj == 'else':        yield ValueError()value_errors =[]工作版本,但重復的代碼:for exc in gen1(obj):    if isinstance(exc, ValueError):        value_errors.append(exc)for exc in gen2(obj):    if isinstance(exc, ValueError):        value_errors.append(exc)無法正常工作,但沒有重復的代碼:generators = [    gen1(obj),    gen2(obj)]for yielded in generators:    if isInstance(yielded, ValueError):        value_errors.append(yielded))這是行不通的,因為它會產生生成器而不是生成器的生成值。有可能解決這個問題嗎?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

采用:


for yielded in generators:

    for _yielded in yielded:

        if isinstance(_yielded, ValueError):

            value_errors.append(_yielded)


查看完整回答
反對 回復 2021-04-09
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

[obj for generator in generators for obj in generator]


查看完整回答
反對 回復 2021-04-09
  • 3 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號