繁体   English   中英

在一行中使用 generator.send() 消费多个项目

[英]Consume multiple items with generator.send() in one line

是否有直接将列表/生成器提供给生成器的习语?

lst = [1, 2, 3]
it = my_gen()
next(it)
# can do without i ?
for i in lst:
  it.send(i)

UPD:是否可以将 lst 与它链接在一行中,删除fori

这是一种使用mapdeque来使用迭代器的方法(这里的解释是: itertools 消耗 recipie ):

from collections import deque

def my_gen():
    data = ''
    while data is not None:
        print(data)
        data = yield data
    print(data)
    yield data

lst = [1, 2, 3]
it = my_gen()
next(it)  # priming the generator still needs to be done

deque(map(it.send, lst), maxlen=0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM