如何将两个列表组合到python列表中?

时间:2016-04-18 13:19:14

标签: python list python-2.7

我们说我有:

a = [10,14,16]

b = [0,1,2]

我希望将ab合并到一个列表中,如下所示:

print c
[[10, 0], [14, 1], [16, 2]]

我试图合并两个列表:

a + b
[10, 14, 16, 0, 1, 2]

但它与我想要达到的目标不一样。 我怎么能用Python做到这一点?

6 个答案:

答案 0 :(得分:6)

这是zip()的用途:

Task.Run(Action() => ExecuteSomething);

请注意,这会为您提供元组列表。如果您需要列表列表:

>>> a = [10,14,16]
>>> b = [0,1,2]
>>> zip(a, b)
[(10, 0), (14, 1), (16, 2)]

答案 1 :(得分:4)

您可以使用zip内置功能。与手动实施相比,它非常有效。

In [52]: c = list(zip(a,b))

In [53]: c
Out[53]: [(10, 0), (14, 1), (16, 2)]

答案 2 :(得分:2)

a = [10,14,16]
b = [0,1,2] 
c = []
for i in range(len(a)):
    c.append([a[i], b[i]])
print c

或者在一行中:

print [[a[i], b[i]] for i in range(len(a))]

输出:

[[10, 0], [14, 1], [16, 2]]

答案 3 :(得分:0)

使用简单的for循环?

a = [10,14,16]
b = [0,1,2]
c = []
for i in range(len(a)):
    try:
        c.append([a[i],b[i]])
    except KeyError:
        c.append([a[i]])
print c

或使用发电机:

c = [ [a[i],b[i]] for i in range(len(a))]

答案 4 :(得分:0)

import numpy as np
np.array(a+b).reshape(2,3).T.tolist()

答案 5 :(得分:0)

对于小型列表,您可以执行"对于"循环:

a = [10,14,16]
b = [0,1,2]
for i in range(len(a)):
    out[i] = [a[i],b[i]]

或者对于更长的列表,您可以使用pandas创建数据框:

import pandas as pd
df = pd.dataframe([a,b],columns = ['a','b'])
out = df.T.values.tolist()