Shu*_*uki 10 arrays iterable list max python-3.x
我试图找到一种优雅的方法来找到二维数组中的最大值.例如对于这个数组:
[0, 0, 1, 0, 0, 1] [0, 1, 0, 2, 0, 0][0, 0, 2, 0, 0, 1][0, 1, 0, 3, 0, 0][0, 0, 0, 0, 4, 0]
Run Code Online (Sandbox Code Playgroud)
我想提取值'4'.我想在最大范围内做一个最大值,但我正在努力执行它.
fal*_*tru 12
最大数量的最大值(map(max, numbers)产量1,2,2,3,4):
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
>>> map(max, numbers)
<map object at 0x0000018E8FA237F0>
>>> list(map(max, numbers)) # max numbers from each sublist
[1, 2, 2, 3, 4]
>>> max(map(max, numbers)) # max of those max-numbers
4
Run Code Online (Sandbox Code Playgroud)
小智 8
不像 falsetru 的回答那么短,但这可能是你的想法:
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
>>> max(max(x) for x in numbers)
4
Run Code Online (Sandbox Code Playgroud)
小智 7
解决此问题的另一种方法是使用函数numpy.amax()
>>> import numpy as np
>>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0]
>>> np.amax(arr)
Run Code Online (Sandbox Code Playgroud)
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
Run Code Online (Sandbox Code Playgroud)
您可以添加key参数如下,max以查找二维数组/列表中的最大值
>>> max(max(numbers, key=max))
4
Run Code Online (Sandbox Code Playgroud)