Python3找出List中最大_最小的N个数及索引

 1 # -*- coding: utf-8 -*-
 2 import heapq
 3 
 4 nums = [1, 8, 2, 23, 7, -4, 18, 23, 24, 37, 2]
 5 
 6 # 最大的3个数的索引
 7 max_num_index_list = map(nums.index, heapq.nlargest(3, nums))
 8 
 9 # 最小的3个数的索引
10 min_num_index_list = map(nums.index, heapq.nsmallest(3, nums))
11 
12 print(list(max_num_index_list))
13 print(list(min_num_index_list))
import heapq
 
a=[1,2,3,4,5]
re1 = map(a.index, heapq.nlargest(3, a)) #求最大的三个索引    nsmallest与nlargest相反,求最小
re2 = heapq.nlargest(3, a) #求最大的三个元素
print(list(re1)) #因为re1由map()生成的不是list,直接print不出来,添加list()就行了
print(re2) 
def get_list_max_index(list_, n):
"""
计算列表中最大的N个数对应的索引
:param list_: 要分析的列表(list)
:param n: 截取最大的n个数(int)
:return: 最大n个数的索引
"""
N_large = pd.DataFrame({'score': list_}).sort_values(by='score', ascending=[False])
return list(N_large.index)[:n]