python - 矩阵中列的最大值列表(没有 Numpy)
问题描述
我试图在没有 Numpy 的情况下获取矩阵中列的最大值列表。我正在尝试编写大量代码,但找不到想要的输出。
这是我的代码:
list=[[12,9,10,5],[3,7,18,6],[1,2,3,3],[4,5,6,2]]
list2=[]
def maxColumn(m, column):
for row in range(len(m)):
max(m[row][column]) # this didn't work
x = len(list)+1
for column in range(x):
list2.append(maxColumn(list, column))
print(list2)
这是想要的输出:
[12, 9, 18, 6]
解决方案
Python 有一个内置函数zip
,允许您转置1列表列表:
L = [[12,9,10,5], [3,7,18,6], [1,2,3,3], [4,5,6,2]]
def maxColumn(L):
return list(map(max, zip(*L)))
res = maxColumn(L)
[12, 9, 18, 6]
1官方说明zip
:
创建一个迭代器,聚合来自每个可迭代对象的元素。