python - 在具有重复值的 Python“列表”中查找“n”个最大元素
问题描述
假设我有一个如下所示的列表:
test= [19, 2, 8, 12, 8]
我将其排序为:
print(sorted([(val, idx) for (idx, val) in enumerate(test)], reverse = True))
输出是:
[(19, 0), (12, 3), (8, 4), (8, 2), (2, 1)]
我想提取前 4 个最大的数字。切片不起作用,因为我在列表中有重复项(8
在索引 2 和 4 处)
我期望的输出是:(19, 0), (12, 3), (8, 4), (8, 2)
有没有其他方法可以完成这项工作?
解决方案
首先通过将列表转换为集合来删除重复项,然后返回列表并对值进行排序。编码:
test= [19, 2, 8, 12, 8]
test_uniques_sorted = lsorted(list(set(test)), reverse = True)
print(test_uniques_sorted)
推荐阅读
- android - 受信任的网络活动 - 地址栏不隐藏 - 没有应用程序深度权限
- python - 如何根据索引名称的长度选择熊猫系列行?
- r - 从R中的列表列表中删除元素
- css - 如何在 JS 中使用 CSS 实现嵌套悬停样式、Material UI
- java - 线程为自己抛出 InterruptedException 是否正确?
- c - 什么是左值和右值?
- swift - 如何使用来自 turbo360 等 Onine 服务器的 JSON 文件?
- bash - 简单 bash find/mv/rsync 脚本的问题
- batch-file - 如何忽略使用通配符 [*.*] 选择所有扩展名
- azure - azure iot hub - urllib3.connectionpool SSLError 握手错误