python 找出list中最大或者最小几个数的索引方法

时间:2021-10-05 19:58:33

如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
nums = [1,8,2,23,7,-4,18,23,24,37,2]
result = map(nums.index, heapq.nlargest(3, nums))
temp=[]
Inf = 0
for i in range(3):
  temp.append(nums.index(max(nums)))
  nums[nums.index(max(nums))]=Inf
result.sort()
temp.sort()
print(result)
print(temp)

如上,有result和temp两种求法,上面代码输出:

?
1
2
[3, 8, 9]
[3, 8, 9]

没问题

但是把nums改一下:

?
1
nums = [1,8,2,23,7,-4,18,23,23,37,2]

输出:

?
1
2
[3, 3, 9]
[3, 7, 9]

发现问题了吧,result方法发现相同数字永远会返回第一次出现的索引

以上这篇python 找出list中最大或者最小几个数的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/sinat_36811967/article/details/79572960