python - 如何排序列表,首先按项目的频率,然后按项目的值
问题描述
我需要获取一个 python 数字列表并找到最常见的元素,但如果有平局,我需要具有最小值的元素。例如,如果列表中最常见的元素是 3 和 4 之间的平局,我需要获取值 3,因为它是两者中较小的一个。
解决方案
import collections
x = [2,4,3,2,6,4,4,4,3,3,3]
counts = collections.Counter(x)
new_list = sorted(x, key=lambda i: (-counts[i],i))
print(new_list[0])
输出:3
在那里,您的项目总是在 new_list[0]
推荐阅读
- c - realloc 是否改变了它的论点
- docker - 如何在 Apache 中为 Mautic Docker 更新 HTTP_HOST
- java - Java中的内存使用
- google-apps-script - 左侧转移无效。(第 1 行,“测试”文件)
- php - 测试 Laravel Flash 会话
- testing - Testcafe - useRole 问题 - 需要更简洁的登录方式
- jenkins - 如何使用 Bitbucket Branch Source 插件在 Jenkins 中访问 webhook 请求的正文数据(事件有效负载)?
- symfony - 在匹配 2.2 的版本中找不到包 api-platform/api-pack
- database - 在文本输入中获取的值需要作为参数传递以插入数据库
- jenkins - 如何从 Jenkins 的多分支管道中提取分支名称?