Python – 相似的索引元素矩阵
有时,在处理数据时,我们可能会遇到一个问题,即我们需要从列表元素垂直而不是水平执行矩阵的构造。这种应用可以出现在数据科学领域,我们需要从几个列表中构建矩阵。让我们讨论可以执行此任务的某些方式。
方法#1:使用zip() + map()
上述功能的组合可用于执行此任务。在此,我们使用 zip() 对列表进行配对,然后使用 map() 从配对列表中构建矩阵。
# Python3 code to demonstrate
# Similar index elements Matrix
# using zip() + map()
# Initializing lists
test_list1 = [3, 4, 5]
test_list2 = [1, 2, 6]
test_list3 = [7, 9, 8]
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
# Similar index elements Matrix
# using zip() + map()
res = []
res += map(list, zip(test_list1, test_list2, test_list3))
# printing result
print ("The matrix after cummulation is : " + str(res))
输出 :
The original list 1 is : [3, 4, 5]
The original list 2 is : [1, 2, 6]
The original list 3 is : [7, 9, 8]
The matrix after cummulation is : [[3, 1, 7], [4, 2, 9], [5, 6, 8]]
方法 #2:使用列表理解 + zip()
这是可以执行此任务的另一种方式。在此,我们在列表理解的帮助下执行上述 map() 的任务。
# Python3 code to demonstrate
# Similar index elements Matrix
# using zip() + list comprehension
# Initializing lists
test_list1 = [3, 4, 5]
test_list2 = [1, 2, 6]
test_list3 = [7, 9, 8]
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
# Similar index elements Matrix
# using zip() + list comprehension
res = [list(sub) for sub in zip(test_list1, test_list2, test_list3)]
# printing result
print ("The matrix after cummulation is : " + str(res))
输出 :
The original list 1 is : [3, 4, 5]
The original list 2 is : [1, 2, 6]
The original list 3 is : [7, 9, 8]
The matrix after cummulation is : [[3, 1, 7], [4, 2, 9], [5, 6, 8]]