gpt4 book ai didi

python - 深入——yield from inside yield

转载 作者:行者123 更新时间:2023-11-28 20:28:34 26 4
gpt4 key购买 nike

是否有一个单行代码来获取生成器并生成该生成器中的所有元素?例如:

def Yearly(year):
yield YEARLY_HEADER
for month in range(1, 13):
# How can I rewrite the following two lines?
for line in Monthly(month):
yield line
yield YEARLY_FOOTER

def Monthly(month):
yield MONTHLY_HEADER
for day in range(31): # Yes, this is wrong
yield 'Day %d' % day
yield MONTHLY_FOOTER

也许有更好的方法来重写整个方法?

最佳答案

import itertools

def Yearly(year):
return itertools.chain(*[(YEARLY_HEADER,)] +
[Monthly(m) for m in range(1, 13)] +
[(YEARLY_FOOTER,)])

基本上,将 YEARLY_HEADERYEARLY_FOOTER 制作成迭代器,它们可以与每月迭代器链接起来。

关于python - 深入——yield from inside yield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com