我是python的新手,我正试图根据索引值将三个不同的列表合并为一个列表,如下例所示:这三个列表大小相同。
A=['ABC', 'PQR', 'MNO']
B=['X', 'Y', 'Z']
C=['1','2','3']***
我想要的输出是P=[['ABC','X','1'],['pcr','Y','2'],[MNO','Z','3']]
提前谢谢。
我通常使用numpy,因为它是一个简单的转换,并且可以使用任意多的列表:
import numpy as np
A = ['ABC', 'PQR', 'MNO']
B = ['X', 'Y', 'Z']
C = ['1', '2', '3']
lists = [A, B, C]
numpy_array = np.array(lists)
transpose = numpy_array.T
transpose_list = transpose.tolist()
print(transpose_list)
以下是使用for loop
和range()
函数的解决方案:
A=['ABC', 'PQR', 'MNO']
B=['X', 'Y', 'Z']
C=['1','2','3']
list1=[]
for i in range(len(A)):
list1.append([A[i],B[i],C[i]])
display(list1)
输出:
[['ABC', 'X', '1'], ['PQR', 'Y', '2'], ['MNO', 'Z', '3']]
使用具有zip()
功能的for loop
:
l=[]
for a,b,c in zip(A,B,C):
l.append([a,b,c])
display(l)
输出:
[['ABC', 'X', '1'], ['PQR', 'Y', '2'], ['MNO', 'Z', '3']]
您不想使用for loop
吗?
下面是map()
的功能:
result = list(map(lambda a, b, c: [a,b,c] , A, B,C))
display(result)
输出:
[['ABC', 'X', '1'], ['PQR', 'Y', '2'], ['MNO', 'Z', '3']]
您可以使用列表理解来获得所需的输出;
a=[[x,y,z] for x,y,z in zip(A,B,C)]
print(a)