在列表列表中查找最大值的坐标
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))
我的任务是在 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))