我们说我有:
a = [10,14,16]
b = [0,1,2]
我希望将a
和b
合并到一个列表中,如下所示:
print c
[[10, 0], [14, 1], [16, 2]]
我试图合并两个列表:
a + b
[10, 14, 16, 0, 1, 2]
但它与我想要达到的目标不一样。 我怎么能用Python做到这一点?
答案 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()