二元数组获取最大值,通过最大值的获取索引位置
Mkdir700 • 2019 年 11 月 17 日
Loading...
现有一个二维数组
a = [[1,2,3],
[4,5,6],
[2,8,9]]
很明显,一看,最大值是`9`,索引 `a[2][1]`
## 二维数组获取最大值 ##
通过代码先来说下,如何从二维数组中获取最大值
可以通过循环嵌套,然后在其中进行比较获得最大值
python中可以,使用`max()`获取最大值
max(a)
这里获取到值是 `[4,5,6]`
![QQ截图20191117202607.png][2]
这里我们可以看到,这里其实比较的是,每个子数组的第一个值, 1 4 2,4是最大值,则返回4所在的那个子数组。
max(max(a))
而这获取到的是单个最大值,可以理解为,先从二维数组中获取一个子数组,然后再从这个子数组中获取最大值
![QQ截图20191117202955.png][3]
上方获取到的最大值,并不是二维数组中最大的值,那么如何获取整个二维数组中的最大值呢?
max(map(max, a))
![QQ截图20191117203143.png][4]
## 二维数组最大值的位置 ##
假如现在我们只知道`a`中的最大值是 9, 那么如何知道这个 9 的具体位置呢?
不导入第三方模块的情况下,我想是通过循环嵌套来完成了,我百度了一圈,也没找到其他方法
```python
def max_value_position(max, a):
for i in range(len(a)):
for j in range(len(a[i])):
if a[i][j] == max:
return (i, j)
```
通过上方的函数,我们就可以找到 9 的具体位置了,如果存在两个最大值(两值相等)。则会返回先出现的那个最大值的位置。
还有没有其他的二维数组,通过最大值查找其索引的方法,还得继续了解了解。毕竟二维数组循环嵌套耗时费力。
[1]: http://assets.z2blog.com/usr/uploads/2019/11/1229351404.png
[2]: http://assets.z2blog.com/usr/uploads/2019/11/3996693961.png
[3]: http://assets.z2blog.com/usr/uploads/2019/11/1229351404.png
[4]: http://assets.z2blog.com/usr/uploads/2019/11/28354161.png