Python 连接生成器和项目
我有一个生成器(数字)和一个值(数字)。我想重复这些,就好像它们是一个序列:Python 连接生成器和项目,python,iterator,generator,list-comprehension,Python,Iterator,Generator,List Comprehension,我有一个生成器(数字)和一个值(数字)。我想重复这些,就好像它们是一个序列: i for i in tuple(my_generator) + (my_value,) 问题是,据我所知,这只会创建3个元组来立即丢弃它们,并且还会复制“my_generator”中的项目一次 更好的方法是: def con(seq, item): for i in seq: yield seq yield item i for i in con(my_generator, my_
i for i in tuple(my_generator) + (my_value,)
问题是,据我所知,这只会创建3个元组来立即丢弃它们,并且还会复制“my_generator”中的项目一次
更好的方法是:
def con(seq, item):
for i in seq:
yield seq
yield item
i for i in con(my_generator, my_value)
但我想知道,如果没有函数定义,是否可以将多个序列视为单个序列
因此,您可以将其用作:
import itertools
def my_generator():
yield 1
yield 2
for i in itertools.chain(my_generator(), [5]):
print i
这将产生:
1
2
5
尝试
itertools.chain(*iterables)
。这里的文档:python没有内置生成器,这太疯狂了。我理解finitude参数,但同样的问题也出现在itertools.chain
中,对吗?