我想要一个生成器来返回我在以下迭代中发送给它的内容:
>>>g = delayed_generator()
>>>g.send(None)
>>>g.send('this')
>>>g.send('is')
'this'
>>>g.send('delayed')
'is'
>>>g.send('!')
'delayed'
我想出了一个涉及三个内部变量的解决方案,我想知道是否有更简单的方法来实现它。这是我的解决方案:
def delayed_generator():
y = None
z = None
while True:
x = yield y
y=x
y = yield z
z=y
z = yield x
x=z
最佳答案
你可以保留一个队列:
def delayed_generator():
q = [None, None]
while True:
x = yield q.pop(0)
q.append(x)
g = delayed_generator()
g.send(None), g.send('this'), g.send('is'), g.send('delayed'), g.send('!')
返回
(None, None, 'this', 'is', 'delayed')
关于python - 我可以简化这个 "delayed"python 生成器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48365635/