我有这样的矩阵:
matrix = [ [0,0,2],[1,0,1],[2,1,0] ]
我希望得到一个列表:
[2,1,2]
比较是每列的列,因此矩阵[0] [0]与矩阵[1] [0]和矩阵[2] [0]进行比较,谢谢
另一个例子:
[[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
我希望得到一个列表:
[2,1,3]
答案 0 :(得分:4)
使用map
:
>>> list(map(max, l))
#driver values:
IN : l = [ [0,0,2],[1,0,1],[2,1,0] ]
OUT : [2, 1, 2]
编辑:以上查找每个内部列表的最大值。 OP的所需行为(逐列)相同:
>>> list(map(max, zip(*l)))
#driver values:
IN : l = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
OUT : [2, 1, 3]
答案 1 :(得分:2)
如果您乐意使用第三方库,numpy
提供了一种方式。
这假设您的列表元素具有相同的长度。
import numpy as np
A = np.array([[0,0,2],[1,0,1],[2,1,0],[2,1,3]])
res = A.max(axis=0)
# array([2, 1, 3])
答案 2 :(得分:1)
lst = [ [0,0,2],[1,0,1],[2,1,0] ]
print [max(i) for i in lst]
答案 3 :(得分:0)
列表理解,压缩和缩减的组合也应该提供所需的结果:
matrix = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
max_cols = [max(list(i)) for i in zip(*matrix)]
max_cols具有矩阵列的最大值 - [2,1,3]
答案 4 :(得分:-1)
正如其他人所说,你可以使用
>>> [max(i) for i in a]
[2, 1, 2]
但是这也与你想要的相反
>>> [min(i) for i in a]
[0, 0, 0]