合并两个列表python

时间:2012-10-03 14:19:29

标签: python list

我有两个清单:

a = [(1,2,3),(4,5,6)]

b = [7,8]

我想将其合并到:

c = [(1,2,3,7),(4,5,6,8)]

我使用zip(a,b),但结果似乎不正确。有人可以帮忙吗?

7 个答案:

答案 0 :(得分:6)

zip()只会将元组和整数配对。您还需要连接元组和新项:

c = [aa + (bb,) 
     for aa, bb in zip(a, b)]

答案 1 :(得分:5)

>>> a = [(1,2,3),(4,5,6)]
>>> b = [7,8]
>>> c = zip(*a)+[b] #c looks like [(1,4),(2,5),(3,6),(7,8)]
>>> print zip(*c) #zip it back together
[(1, 2, 3, 7), (4, 5, 6, 8)]
>>>

答案 2 :(得分:3)

尝试

map ( lambda x: x[0]+(x[1],), zip(a,b))

答案 3 :(得分:2)

还有另一个版本:

from itertools import izip
[x+(y,) for x,y in izip(a,b)]

应该是高效的,它以可读的方式表达你真正在做的事情。

答案 4 :(得分:2)

而另一个:

map(lambda t, e: t + (e,), a, b)

无需拉链和打开包装; map可以同时删除两个列表。

答案 5 :(得分:1)

print((a[0]+(b[0],),a[1]+(b[1],)))

答案 6 :(得分:1)

这对我来说似乎很清楚:

[x + (b[i],) for i,x in enumerate(a)]