Python 如何在找到最大值后返回元素的索引

Python 如何在找到最大值后返回元素的索引,python,Python,我有一个矩阵[[0 0 0 0 0 0][1 0 1 0 1][2 1 0 0 1 0 0]]。我需要返回元素的索引,该索引在最后一行中最大,但也小于2,它应该返回值最高的索引 例如,在我的矩阵中,我需要程序返回M[2,4],2,4作为解。我的程序正在运行,但它返回M[2,1]位置的值 M=[[0 0 0 0 0 0 0] [1 0 0 1 0 0 1] [2 1 0 0 1 0 0]] ma=0 for i in range(1,2): for j in r

我有一个矩阵[[0 0 0 0 0 0][1 0 1 0 1][2 1 0 0 1 0 0]]。我需要返回元素的索引,该索引在最后一行中最大,但也小于2,它应该返回值最高的索引

例如,在我的矩阵中,我需要程序返回M[2,4],2,4作为解。我的程序正在运行,但它返回M[2,1]位置的值

M=[[0 0 0 0 0 0 0]
 [1 0 0 1 0 0 1]
 [2 1 0 0 1 0 0]]
    ma=0
    for i in range(1,2):
        for j in range(0,7):
            if M[i,j]<2 and ma<=M[i,j]:
                ma=M[i,j]
                return M[i,j],i,j
M=[[0]
[1 0 0 1 0 0 1]
[2 1 0 0 1 0 0]]
ma=0
对于范围(1,2)内的i:
对于范围(0,7)内的j:

如果M[i,j]问题是它返回得太早。您应该在扫描完所有元素后将其返回。在这种情况下,return语句不应该放在内部循环内,而应该放在外部for循环外。此外,我认为您需要跟踪最高值的索引以及
ma
,因为I,j将是循环完成后最后一个元素的值

原始代码的语法似乎不正确,因此我做了一些修改:

def test():
    M=[[0, 0, 0, 0, 0, 0, 0],
            [1, 0, 0, 1, 0, 0, 1],
            [2, 1, 0, 0, 1, 0, 0]]
    ma=0
    maxi = maxj = 0
    for i in range(0,3):
        for j in range(0,7):
            if M[i][j] < 2 and ma <= M[i][j]:
                ma = M[i][j]
                maxi = i
                maxj = j
    return(ma, maxi, maxj)

print(test())
def test():
M=[[0,0,0,0,0,0,0,0],
[1, 0, 0, 1, 0, 0, 1],
[2, 1, 0, 0, 1, 0, 0]]
ma=0
maxi=maxj=0
对于范围(0,3)内的i:
对于范围(0,7)内的j:

如果M[i][j]<2且ma,则返回正确的M[i,j],但i,j值不正确。按照您的建议,它返回了我(1,2,6)Oops,忘记了i,j的值在每个内部循环中都会发生变化。“我已经更新了我的答案。你能给我建议一条出路吗?我想不出来。@SayaneShome没问题,请看我的最新答案。”。