基于相同的索引连接两个列表

时间:2015-12-11 20:51:55

标签: python python-2.7

我有两个清单。

A = [1,5,10]
B = [72,36,58]

我想基于相同的索引连接两个列表。

Output = [1,72,5,36,10,58]

我知道我可以使用zip(A,B)这样做但是这样我需要从列表中删除元组。

任何暗示或优雅的方式来做到这一点?

3 个答案:

答案 0 :(得分:6)

您可以使用嵌套列表解析:

>>> [i for tup in zip(A,B) for i in tup]
[1, 72, 5, 36, 10, 58]

如果您正在处理大型数据集,使用Numpy扩展名是一个不错的选择,在这种情况下,您将能够使用许多很酷的功能。在这种情况下,您可以使用numpy.hstack()展平zip()结果:

>>> import numpy as np
>>> 
>>> np.hstack(zip(A,B))
array([ 1, 72,  5, 36, 10, 58])

答案 1 :(得分:2)

这是itertools方法:

>>> from itertools import chain
>>> list(chain.from_iterable(zip(A, B)))
[1, 72, 5, 36, 10, 58]

答案 2 :(得分:1)

这样的事应该可以胜任:

A = [1,5,10]
B = [72,36,58]

Out = []
for i in range(0, 3):
    Out.append(A[i])
    Out.append(B[i])

你得到:

Out = [1, 72, 5, 36, 10, 58]