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

Python如何按字典值列表的首字段降序、次字段升序排序

当前代码的问题是全局开启了reverse=True,会让两个排序规则都应用倒序:第一个值的降序符合要求,但第二个值需要升序,反而被倒序排列,导致结果不符合预期。

调整排序key即可,把第一个值取负数,利用sorted默认的升序逻辑,负数的升序等价于原数值的降序,第二个值保留原值走默认升序,不需要全局设置reverse。

dict1={'123126':[100,'DDD'],'123121':[100,'AAA'],'123122':[100,'BBB'],'123123':[101,'CCC']}
dict2 = {key: val for key,val in sorted(dict1.items(), key = lambda ele: (-ele[1][0], ele[1][1]))}
print(dict2)

运行后输出结果为:

{'123123': [101, 'CCC'], '123121': [100, 'AAA'], '123122': [100, 'BBB'], '123126': [100, 'DDD']}

补充说明:你给出的预期输出中key和value的对应存在笔误,123121对应的value是[100, 'AAA'],123126对应的value是[100, 'DDD'],上述运行结果符合value2升序的排序规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:05