Python:获取索引错误:列出索引超出范围,但无法找出原因



我正在尝试制作一个函数,在这里我可以找到列表输入的最高y值,格式为:list([x,y],[x,y]…

第2行,我找到了某个地方并复制了它,我想我有点理解它,因为它找到了具有最高y值的嵌套列表,并将该y值分配给max_value变量。当我试图找出嵌套列表中的索引时,问题就出现了。我试图通过使用for循环来找到它,但我得到了这个错误,无法理解为什么:

(第4行,在find_highest if坐标([i][1](==max_value:IndexError:列出索引超出范围(。

据我所知,在这种情况下,我应该有一个0-4之间的值,这在我放入的列表的索引内

def find_highest(coordinates):
x_value, max_value = max(coordinates, key=lambda item: item[1])
for i in range(len(coordinates) - 1):
if coordinates([i] [1]) == max_value:
index = i
return index

print(find_highest([[96, 33], [200, 96], [30, 690], [59, 9], [220, 93]]))

不知道为什么要添加括号。只需更改的线路

if coordinates([i] [1]) == max_value:

至:

if coordinates[i][1] == max_value:

它应该起作用。

您需要删除花括号:

if coordinates[i][1] == max_value:

否则,解释器会将"坐标"视为一个函数。

最新更新