You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何按字典值降序排序,值相同时按键降序排序

解决方法

你只需要调整sorted函数的排序规则,把原来仅按频率值降序排序的key,修改为返回*(频率值, 键)*的元组即可。当reverse=True时,排序逻辑会自动优先按频率降序排列,频率相同的情况下自动按键的大小降序排列,刚好匹配需求。

修改后的完整代码如下:

a = [1,1,1,11,2,2,2,2,2,3,3,3,3,4,4,4,4,8,11,8,8,5,11,7,7,7,7,7,]

freq = dict()

for i in a :
    freq[i] = freq.get(i, 0) +1

# 仅修改排序的key参数即可
fsort = dict(sorted(freq.items(), key=lambda item:(item[1], item[0]), reverse=True))
print(fsort)

运行后输出结果和预期完全一致:

{7: 5, 2: 5, 4: 4, 3: 4, 11: 3, 1: 3, 8: 3, 5: 1}

内容的提问来源于stack exchange,提问作者Umesh N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:36:04