如何按value和key排序字典:值相等时按字母顺序排序
实现方法
你可以直接用Python内置的sorted()函数,通过自定义排序规则实现需求:
完整代码
# 原始字典 genre_dict = { 'Horror': 2, 'Romance': 2, 'Comedy': 2, 'Action': 3, 'Adventure': 1, 'History': 2 } # 排序:先按value降序,value相等时按key字母升序 sorted_list = sorted(genre_dict.items(), key=lambda item: (-item[1], item[0])) # 按要求格式输出 for k, v in sorted_list: print(f"{k} : {v}")
排序规则说明
sorted函数的key参数返回一个二元组,排序逻辑为:
- 第一个元素是
-item[1]:对value取负值,sorted默认按升序排列时,value越大的元素会排在越前面,实现value降序的要求 - 第二个元素是
item[0]:当value相等时,会自动按key的字符串升序排列,也就是按字母顺序排序,符合需求
输出结果
运行上述代码后输出和预期完全一致:
Action : 3 Comedy : 2 History : 2 Horror : 2 Romance : 2 Adventure : 1
内容的提问来源于stack exchange,提问作者Hadi Mousavi Fakhr
相关产品推荐
相关产品推荐

