首页 > 解决方案 > Python max() 函数忽略列表中第一项的最大值

问题描述

我有一些代码试图识别列表中最大项目的索引。这个功能很好,直到最大值 10 出现在列表的第一个项目中,它被忽略。

myList = [10,3,7,3,9]
highest = myList.index(max(myList))
print(highest)

#Outputs 4

myList = [3,10,7,3,9]
highest = myList.index(max(myList))
print(highest)

#Outputs 1

我确定这很明显,但我似乎无法弄清楚为什么它会忽略 10,并且只有在它位于位置 0 时才会忽略它。

标签: pythonpython-3.x

解决方案


张贴作为额外空间和格式选项的答案。
您可以在一个空文件中运行以下内容并为我提供输出吗?

def list_debugging(myList):
    print("list:", myList)
    print("max:", max(myList))
    print("max index", myList.index(max(myList)))
    maxVal = max(myList)
    print("max var:", maxVal)
    maxIndex = myList.index(maxVal)
    print("max index var:", maxIndex)
    highest = myList.index(max(myList))
    print("index of highest:", highest)
    print()


list_debugging([10, 3, 7, 3, 9])
list_debugging([3, 10, 7, 3, 9])
list_debugging(['10', '3', '7', '3', '9'])
list_debugging(['3', '10', '7', '3', '9'])

我得到并期望的输出是

list: [10, 3, 7, 3, 9]
max: 10
max index 0
max var: 10
max index var: 0
index of highest: 0

list: [3, 10, 7, 3, 9]
max: 10
max index 1
max var: 10
max index var: 1
index of highest: 1

list: ['10', '3', '7', '3', '9']
max: 9
max index 4
max var: 9
max index var: 4
index of highest: 4

list: ['3', '10', '7', '3', '9']
max: 9
max index 4
max var: 9
max index var: 4
index of highest: 4

如果您得到相同的输出,那么我相信您的程序中的其他代码会导致我们需要解决的问题。或者它是一个 python 解释器错误(不太可能但可能),在这种情况下,我想知道您正在运行的 python 版本,以便我可以尝试重现它。


推荐阅读