方法:首先利用heapq模块中的nlargest/nsmallest方法,求得列表中的前n个最大/最小元素,然后利用index()求每个元素的索引。
代码如下:
import heapq
l = [5,6,5,3,2,7,8]
max_num = heapq.nlargest(4,l)
max_index = []
for i in max_num:
max_index.append(l.index(i))
print(max_index)
#输出:
#[6, 5, 1, 0]
借助python的map()方法优化代码:
import heapq
l = [5,6,5,3,2,7,8]
max_index_new = list(map(l.index, heapq.nlargest(4,l)))
print(max_index_new)
#输出:
#[6, 5, 1, 0]