在列表列表中查找最大值的坐标

Finding coordinate of maximum value in list of lists

我的任务是在 python 的列表列表中找到最大值的精确坐标。此列表列表称为网格以模拟地形坐标。 这是网格,以及我找到最大值的代码:

grid = [[15, 16, 18, 19, 12, 11],
        [13, 19, 23, 21, 16, 12],
        [12, 15, 17, 19, 22, 10],
        [10, 14, 16, 13, 9, 6]]
maxi = 0
for i in grid:
    for j in i:
        if j > maxi:
            maxi = j

此代码找到最大值,但我一直在寻找坐标。输出应该是:
全局最大值:(1,2) 23
因为最大值 (23) 位于第一行和第二列。 我试过使用索引和查找,但它们不起作用或将我的值作为输入。感谢您提供任何提示或帮助,提前致谢。

您可以使用内置函数 enumerate

将您的代码更新为:

grid = [[15, 16, 18, 19, 12, 11],
        [13, 19, 23, 21, 16, 12],
        [12, 15, 17, 19, 22, 10],
        [10, 14, 16, 13, 9, 6]]
        
maxi = -float('inf')
maxCoord = None
for i, row in enumerate(grid):
    for j, col in enumerate(row):
        if col > maxi:
            maxi = col
            maxCoord = (i, j)
            
print(maxCoord, maxi) #(1, 2) 23

Enumerate 可能是一个选项,因为它已经被提议了。如果你想保留你原来的函数来寻找最大值,你可以调用它的坐标使用:

for sublist in grid:
  if maxi in sublist:
    print(grid.index(sublist), sublist.index(maxi))