簡體   English   中英

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

[英]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

這段代碼找到了最大值,但是我一直在尋找坐標。 output 應該是:
全局最大值:(1,2) 23
因為最大值 (23) 在第一行和第二列。 我曾嘗試使用 index 和 find 但它們不起作用或將我的值作為輸入。 任何提示或幫助表示贊賞,在此先感謝您。

您可以使用內置 function 枚舉

將您的代碼更新為:

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可能是一種選擇,因為它已經被提議。 如果要保留原始 function 以找到最大值,可以使用以下方法調用其坐標:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM