gpt4 book ai didi

python - 按频率排序列表

转载 作者:太空狗 更新时间:2023-10-29 17:26:12 26 4
gpt4 key购买 nike

在 Python 中有什么方法可以按频率对列表进行排序?

例如,

[1,2,3,4,3,3,3,6,7,1,1,9,3,2]

上面的列表将按照其值出现频率的顺序进行排序,以创建以下列表,其中出现频率最高的项目放在最前面:

[3,3,3,3,3,1,1,1,2,2,4,6,7,9]

最佳答案

我认为这对于 collections.Counter 来说是个不错的工作:

counts = collections.Counter(lst)
new_list = sorted(lst, key=lambda x: -counts[x])

或者,您可以编写没有 lambda 的第二行:

counts = collections.Counter(lst)
new_list = sorted(lst, key=counts.get, reverse=True)

如果您有多个具有相同频率的元素并且您关心这些元素是否保持分组,我们可以通过更改我们的排序键来做到这一点,不仅包括计数,还包括:

counts = collections.Counter(lst)
new_list = sorted(lst, key=lambda x: (counts[x], x), reverse=True)

关于python - 按频率排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25815377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com