连接生成器和项目 [英] Concatenate generator and item
本文介绍了连接生成器和项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个生成器(数字)和一个值(数字).我想遍历这些,就好像它们是一个序列一样:
I have a generator (numbers) and a value (number). I would like to iterate over these as if they were one sequence:
i for i in tuple(my_generator) + (my_value,)
问题是,据我所知,这会创建3个元组,以便立即丢弃它们,并且还会在"my_generator"中复制一次.
The problem is, as far as I undestand, this creates 3 tuples only to immediately discard them and also copies items in "my_generator" once.
更好的办法是:
def con(seq, item):
for i in seq:
yield seq
yield item
i for i in con(my_generator, my_value)
但是我想知道如果没有该函数定义,是否可以实现
But I was wondering whether it is possible to do it without that function definition
推荐答案
itertools.chain
treats several sequences as a single sequence.
因此您可以将其用作:
import itertools
def my_generator():
yield 1
yield 2
for i in itertools.chain(my_generator(), [5]):
print i
它将输出:
1
2
5
这篇关于连接生成器和项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文