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

Python 3.0:基于多条件的字典键排序方法

解决字典多重排序的问题

嗨,这个需求很容易实现!你只需要给sorted()的key参数指定一个排序优先级元组就行——先按值排序,值相同时再按键的字母序排序。

你当前的代码只用了operator.itemgetter(1),也就是只以字典值(items()返回的元组第二个元素)作为排序依据。要加上键的排序规则,只需要把itemgetter的参数改成(1, 0),这样就会先按值排序,值相等时自动按键(元组第一个元素)的字母序排序。

修改后的代码如下:

import operator

# 先按值排序,值相同则按键的字母序排序
sorted_word_values_dict = dict(sorted(word_values_dict.items(), key=operator.itemgetter(1, 0)))

如果你更习惯用lambda表达式,也可以写成这样,效果完全一致:

sorted_word_values_dict = dict(sorted(word_values_dict.items(), key=lambda x: (x[1], x[0])))

原理说明

Python中对元组的排序是按元素顺序依次比较的:首先比较元组的第一个元素(这里是字典的值),如果两个元素相等,就会接着比较元组的第二个元素(这里是字典的键),刚好完美匹配你的两个排序条件。

举个例子,假设你的原字典是:

word_values_dict = {'orange': 2, 'apple': 2, 'pear': 3}

排序后会得到:

{'apple': 2, 'orange': 2, 'pear': 3}

值为2的键会按字母序apple在前、orange在后,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:07:29