列表中元素的索引

我想找出列表中的最大值是否具有比列表中的最小值小的索引。如果存在两个或两个以上的最小值索引,则我想查看最大的索引。如果有两个或多个具有最大值的索引,我想查看最小的索引。现在我的代码如下:

maximum = max(lijst)
minimum = minimum(lijst)

if lijst.index(maximum) <= lijst.index(minimum):
...

但这并不能为我提供这些列表所需的索引:

[2, 9, 15, 36, 36, 3, 2, 36]

现在,我要查看最小值的最大索引(在这种情况下为6)和最大值的最小索引(在这种情况下为3)。有人知道如何找到这些索引吗?

评论
quo_et
quo_et

您需要使用Python的find函数。您可以通过继续检查直到find返回-1来找到最后一个最小值。

maximum = max(li)
minimum = minimum(li)

i1 = li.find(maximum)
i2 = li.find(minimum)
found = False
while(not found):
    if li.find(minimum, i2+1) != -1:
        i2 = li.find(minimum, i2+1)
    else:
        found = True

if i1 < i2:
.......
点赞
评论
陌路夜未央
陌路夜未央

you can return the min/max value in a list using min/max, then use enumerate to get indices, then apply another min/max of the indicies list, example:

my_list = [2, 9, 15, 36, 36, 3, 2, 36]    
maxval = max(my_list)

indices = [index for index, val in enumerate(my_list) if val == maxval]
[3, 4, 7]
maxIndex = max(indices)
7

因此,如果要检查最大值是否在最小值之前,请返回每个值的索引并比较两者。

点赞
评论