首页 > 解决方案 > 如何排序列表,首先按项目的频率,然后按项目的值

问题描述

我需要获取一个 python 数字列表并找到最常见的元素,但如果有平局,我需要具有最小值的元素。例如,如果列表中最常见的元素是 3 和 4 之间的平局,我需要获取值 3,因为它是两者中较小的一个。

标签: pythonpython-3.xsortingfrequency

解决方案


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]


推荐阅读