gpt4 book ai didi

python - 在 Python 中按频率和值对列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:28 25 4
gpt4 key购买 nike

我有一个数字列表,比如 [2,2,3,3,4,1] 我想按频率排序,如果频率计数(升序)相同,则按值排序(也是升序)。 Soln 将是 [1,4,2,2,3,3]

对于频率

from collections import Counter
print sorted(arr, key=Counter(arr).get)

但我不确定如何对相同频率计数元素按值排序

最佳答案

跟进@bro-grammer 的评论(我使用了一个元组作为键并只调用了一次 Counter):

有一种方法,首先必须遍历列表进行计数,然后再进行一些排序。

from collections import Counter
def perseus_sort(l):
counter = Counter(l)
return sorted(l, key=lambda x: (counter[x], x))

可能有一些聪明的算法可以以某种方式将这两者结合起来,但我的直觉是它会非常复杂并且超出你的需要

关于python - 在 Python 中按频率和值对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496219/

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