2015-12-11 50 views
3

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

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

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

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

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

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

+0

感谢您的编辑! – Sakura

回答

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]) 
2

下面是一个itertools方法:

>>> from itertools import chain 
>>> list(chain.from_iterable(zip(A, B))) 
[1, 72, 5, 36, 10, 58] 
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] 
相关问题