Дано:
mat=[
[1, 2, 3],
[4, 5, 6],
[0, 9, 10]
]
Либо max(mat)
, либо max(*mat)
даст тот же результат, поскольку сравниваются отдельные подсписки:
>>> max(mat)
[4, 5, 6]
>>> max(*mat)
[4, 5, 6]
В первом случае, max(mat)
, у вас есть повторяемый список списков, возвращающий каждый подсписок по одному за раз. Во втором случае, max(*mat)
, элементы (подсписки) в этом списке списков распаковываются в несколько отдельных аргументов для max
.
Если вы хотите, чтобы подсписок содержал максимальное значение, используйте max
в качестве ключевой функции:
>>> max(mat, key=max)
[0, 9, 10]
Если вам нужно индивидуальное максимальное значение в двумерной матрице, вы можете сгладить его:
>>> max(v for sl in mat for v in sl)
10
Или три max
:
>>> max(max(mat,key=max))
10