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

yipeiwu_com6年前Python基础

如下所示:

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两种求法,上面代码输出:

[3, 8, 9]
[3, 8, 9]

没问题

但是把nums改一下:

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

输出:

[3, 3, 9]
[3, 7, 9]

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

以上这篇python 找出list中最大或者最小几个数的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中的decimal类型转换实例详解

[Python标准库]decimal——定点数和浮点数的数学运算         作用:使用定点数和浮点数的小数运算...

pandas将numpy数组写入到csv的实例

直接代码 data_arr = [] data = iter_files(dir,speakers) for k,v in data.items(): data_arr.appen...

python xml解析实例详解

python xml解析 first.xml  <info> <person > <id>1</id> <n...

python元组操作实例解析

本文实例讲述了python元组操作方法,分享给大家供大家参考。具体分析如下: 一般来说,python的函数用法挺灵活的,和c、php的用法不太一样,和js倒是挺像的。 在照着操作时,可以...

Python三元运算实现方法

本文实例讲述了Python三元运算实现方法。分享给大家供大家参考。具体分析如下: Python中没有像C++和Java等语言中的三元运算符,但是可以用if else语句实现相同的功能:...