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]