如何使用python连接/合并两个生成器输出

dai*_*ini 13 python generator python-itertools

我有两台发电机g1和g2

for line in g1:
    print line[0]
Run Code Online (Sandbox Code Playgroud)

[a,a,a]
[b,b,b]
[c,c,c]

for line1 in g2:
    print line1[0]
Run Code Online (Sandbox Code Playgroud)

[1,1,1]
[2,2,2]
[3,3,3]

for line in itertools.chain(g1, g2):
    print line[0]
Run Code Online (Sandbox Code Playgroud)

并[a,A,A]
[B,B,B]
[C,C,C]
[1,1,1]
[2,2,2]
[3,3,3]


怎么样

得到如下输出:

[a,a,a],[1,1,1]
[b,b,b],[2,2,2]
[c,c,c],[3,3, 3]


并[a,A,A,1,1,1]
[B,B,B,2,2,2]
[C,C,C,3,3,3]


谢谢您的帮助.

bla*_*nda 14

第一种情况:使用

for x, y in zip(g1, g2):
    print(x[0], y[0])
Run Code Online (Sandbox Code Playgroud)

第二种情况:使用

for x, y in zip(g1, g2):
    print(x[0] + y[0])
Run Code Online (Sandbox Code Playgroud)

您当然可以使用itertools.izip发电机版本.如果zip在Python 3及更高版本中使用,则会自动获得生成器.