列表中元素的索引

问题描述 投票:0回答:1

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

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

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

但是这不会给我这些列表所要的索引:

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

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

python list indexing max min
1个回答
0
投票

您可以使用min / max返回列表中的最小/最大值,然后使用enumerate获取索引,然后应用索引列表的另一个min / max,例如:

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

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


0
投票

您需要使用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:
.......
© www.soinside.com 2019 - 2024. All rights reserved.