【发布时间】:2020-12-02 20:26:42
【问题描述】:
我是 python 的初学者,我目前正在为我的班级准备一个测试。我对一个问题的某一部分感到困惑。
我们被要求创建一个生成器函数,该函数仅在所有其他可迭代参数停止迭代后生成最大可迭代参数的结果。
所以,我的函数目前看起来是这样的:
def generator(*args):
args = [iter(a) for a in args]
while True:
yielded = False
for a in args:
try:
yield next(a)
yielded = True
except StopIteration:
pass
if not yielded:
return
a = generator('abc', 'abcdef', [1,2])
print([i for i in a])
>>> ['a', 'a', 1, 'b', 'b', 2, 'c', 'c', 'd', 'e', 'f']
但我想要的是因为参数'abcdef',当所有其他参数停止迭代时它不会停止迭代,对吧?我只想打印['d','e','f']
因此,所需的结构应该是:
def generator(*args):
blah blah
a = generator('abc', 'abcdef', [1,2])
print([i for i in a])
>>>['d','e','f']
我的功能有什么问题吗?
【问题讨论】: