给定一个数字网格,例如
g=[[2, 2, 2, 3, 2],
[2, -1, -1, 3, 3],
[3, 2, -1, 3, 3],
[2, 4, 3, 3, 3],
[-1, 2, 2, -1, 1]]
Run Code Online (Sandbox Code Playgroud)
我正在那个 2d 列表中搜索最大值,在这个例子中,显然是 4。要找到这个值,就max(max(graph,key=max))可以完成这项工作(即使我知道它两次调用 max 来获取最大值的行,所以它不是非常高效)
但这只是我正在寻找的一半。我需要这个 4 的坐标。我想要一段简短、高效、Python 的代码,这样
x, y = find_2d_max_index(g)可以给我最大数字的位置,而不需要之前做三重最大的事情。我想避免index()在找到最大值后使用该方法,因为那样效率非常低。
我研究了 numpy argmax,但无法让它在带有二维列表的应用程序中工作。
任何帮助表示赞赏。