在不使用给定函数的情况下查找max元素及其索引

use*_*901 -1 python python-3.x

我试图找到最大数字和它的索引只使用for循环,没有任何Python给定的功能.

这是我的代码:

def main():
    a = [2,1,5,9,8,3,7,4,6]
    max = 0
    index = 0

    for number in a:
        if number > max:
            max = number
    index += 1

    print(max, index)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

循环完成后,我得到正确的最大数字,但索引不正确.我应该改进什么?

Eug*_*ash 6

index增量移动到循环体并保持索引的最大数量,例如:

def main():
    a = [2, 1, 5, 9, 8, 3, 7, 4, 6]
    max_number = max_index = index = 0

    for number in a:
        if number > max_number:
            max_number = number
            max_index = index
        index += 1

    print(max_number, max_index)
Run Code Online (Sandbox Code Playgroud)

另外,不要为变量命名max以避免遮蔽同名的内置函数.