Skip to main content
 首页 » 编程设计

python之列表中最大的 n 个元素的项目和索引

2025年05月04日17yjmyzz

我有一个数组:

arr = [23,34,2,55,5,13,​​44,3]

我想保存 n 个最大的数字及其索引。
例如,对于 n = 2,我想要

[(55,3), (44,6)]

我找不到一个简单的方法来做到这一点.. 我只找到了如何使用 nlargest 获取 n 个最大的项目或使用 argpartition 获取 n 个最大的索引。

请您参考如下方法:

免责声明:不是 numpy 解决方案 - 您可以结合使用 enumerate、sorted、生成器理解和列表切片:

n = 3 
s = list(sorted( ((v,i) for i,v in enumerate([23,34,2,55,5,13,44,3]) ),reverse = True))[:n] 
 
print(s) 

输出:

 [(55, 3), (44, 6), (34, 1)] 

独库:

生成器用于翻转枚举产生的索引和值,切片减少结果量。