首页 > 解决方案 > Python:在列表中查找最大元素索引

问题描述

我有一个清单

arr = [0, 1, 45, 2, 40, 3, 70, 4, 45, 5, 6, 7, 8, 9]

我正在尝试使用以下代码从 3 个连续元素中找到最大元素的位置/索引:

for i in range (0, len(arr)-3):
    print(arr.index(max(arr[i : i+3])))

i转到位置 7 时,它给出了错误的结果。

结果应该是:

2 2 2 4 6 6 6 8 8 11 12

而是相反

2 2 2 4 6 6 6 2 2 11 12

标签: pythonlistfor-loop

解决方案


那是因为有两个45' 并index返回第一次出现。您可以传递一个startandend参数来告诉index方法从哪个索引开始查找。

for i in range (0, len(arr)-3):
    print(arr.index(max(arr[i : i+3]), i, i+3))

或者:

for i in range (0, len(arr)-3):
    sliced_array = arr[i : i+3]
    print(i + sliced_array.index(max(sliced_array)))

推荐阅读