python - 首先按值排序字典,然后按键排序
问题描述
我在 python 中有一个带有字符串键和整数值的字典。我想按值排序,如果两个值相同,则按键对字典进行排序。字典的一个例子。是:
{'Spain':3,'Morocco':1,'England':3,'canada':2}
排序后应该是:
{'England':3,'Spain':3,'canada':2,'Morocco':1}
解决方案
您可以尝试下面的方法,它按项目对字典进行排序。
-item[1]
按值降序item[0]
排序,而按键升序排序。因为 sorted 的结果是一个元组列表,我们需要使用dict()
构造函数调用将其转换为 dict。
d = {'Spain': 3, 'Morocco': 1, 'England': 3, 'canada': 2}
out = dict(sorted(d.items(), key=lambda item: (-item[1], item[0])))
print(out)
输出:
{'England': 3, 'Spain': 3, 'canada': 2, 'Morocco': 1}
推荐阅读
- javascript - TweetNaCl TypeError:意外类型,使用 Uint8Array
- excel - 对 UDF 使用数组求和
- angular - 如何在 Angular 项目中引用 environment.ts 文件中的其他环境属性?
- ios - 我可以在不向 App Store 添加版本的情况下添加新的 TestFlight 版本吗?
- r - Rvest Scraping - Time Class 的 HTML 属性标题与网页相比具有不同的值 - 9 小时差异
- mongodb - Mongoose - 搜索数组并返回匹配的结果
- tcp - 客户端收到 [SYN, ACK] 后发送 [RST]
- javascript - js,从文本偏移/文本位置获取元素?
- javascript - 如何根据javascript中的多个分隔符将字符串拆分为多个数组
- powershell - 如何在 Powershell 中将 Get-Date 日期格式化为 2 位数字