如何用Python实现字典先按值降序、值同按键升序排序
Python 字典排序:按值降序、值相同按键升序
需求说明
需要对字典的键值对进行排序,遵循以下规则:
- 优先按值进行降序排序
- 当值相同时,按键进行升序排序
实现代码
使用Python内置的sorted()函数,通过自定义key参数实现规则:
# 示例输入字典 word_scores = { 'lorem': 0.07, 'ipsum': 0.07, 'typesett': 0.06, 'type': 0.06, 'dummy': 0.06 } # 执行排序 sorted_result = sorted(word_scores.items(), key=lambda item: (-item[1], item[0])) print(sorted_result) # 输出符合要求的结果: # [('ipsum', 0.07), ('lorem', 0.07), ('dummy', 0.06), ('type', 0.06), ('typesett', 0.06)]
原理说明
sorted()默认按升序排序,通过对值取负数(-item[1]),可以将原本的降序需求转换为升序排序逻辑,值越大的键值对会排在越前面- 当值相同时(即
-item[1]相等),sorted()会使用元组的第二个元素item[0](键本身)进行排序,默认的升序规则正好满足键的从小到大排列要求
内容的提问来源于stack exchange,提问作者user18239509
相关产品推荐
相关产品推荐

