连接生成器和项目 [英] Concatenate generator and item

查看:48
本文介绍了连接生成器和项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个生成器(数字)和一个值(数字).我想遍历这些,就好像它们是一个序列一样:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆