Search code examples
pythonlistindexingmaxnested-loops

Finding coordinate of maximum value in list of lists


I am tasked with finding the exact coordinate of a maximum value in a list of lists in python. This list of lists is referred to as a grid to emulate topographical coordinates. Here is the grid, along with my code to find the maximum:

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

This code finds the maximum, however I am stuck on finding the coordinates. The output should be:
global max: (1,2) 23
Because the maximum (23) is on the First row, and on the second column. I have tried using index and find but they do not work or take my value as an input. Any tips or help are appreciated, thank you in advance.


Solution

  • You can use the builtin function enumerate.

    Update your code to this:

    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