python返回list列表中最大(最小)的几个值以及索引方法

方法一:

在数组无序且没有重复元素时,可以考虑用heapq模块进行抽出最大的几个元素,用map进行键值对的匹配,返回最大(最小)的几个元素的索引值。

import heapq

# 获取list中最大(最小)的n个值
heapq.nlargest(n, list)
heapq.nsmallest(n, list)

# 获取list中最大几个值的索引的列表
list(map(list.index, heapq.nlargest(n, list)))
list(map(list.index, heapq.nsmallest(n, list)))

 在有重复元素时并不能使用该方法,会出现键值匹配混乱。

方法二:

数组无序且有重复元素时,可以考虑使用pandas模块,先对一位数组进行索引匹配,然后排序,返回最大(最小)的多个值的索引。

import pandas as pd

# 对list数组元素进行排序(默认从小到大)
pd.Series(list).sort_values()
pd.Series(list).sort_values(ascending = False)  # 从大到小

# 选取list数组元素中最大(最小)的n个值的索引
pd.Series(a).sort_values().index[:n].
pd.Series(a).sort_values(ascending = False).index[:n]

你可能感兴趣的:(Python,python,list)