python - 如何按降序对字典的值进行排序,并按字母顺序对键进行排序
问题描述
我们如何按降序对字典中的值进行排序,如果有两个相似的值,则按字母顺序对这些值的键进行排序?
像下面的例子:
Input = {'robert':13, 'walter':17, 'andrew':16, 'adrian':16, 'simon':15, 'santiago':15}
Output = {'walter':17, 'adrian':16, 'andrew':16, 'santiago':15, 'simon':15}
解决方案
您可以使用sorted
和设置您想要的密钥,如下所示:
(这里首先要排序descending
,value
然后排序ascending
是否key
值相等):
>>> dct = {'robert':13, 'walter':17, 'andrew':16, 'adrian':16, 'simon':15, 'santiago':15}
>>> dict(sorted(dct.items(), key=lambda x: (-x[1],x[0])))
{'walter': 17,
'adrian': 16,
'andrew': 16,
'santiago': 15,
'simon': 15,
'robert': 13}
推荐阅读
- c# - 在 C# 中加载 XML 文件并将数据反序列化为字典
- python - 从日期时间字段中仅提取时间(HH:MM) - Odoo 10
- python - 有什么方法可以禁用 win10toast python 库上的通知声音?
- ios - 当 UITextView 大小发生变化时,如何调整 UITableViewCell 的大小?
- arrays - 在 Kotlin 中获取其索引从末尾开始计数的元素
- javascript - ParentNode 返回假值
- c# - 生成唯一列,如主键
- keycloak - 无法通过 Keycloak Admin Rest API 添加组属性
- python - 基于Django中的按钮单击将日期传递给查询集
- javascript - Firebase 云函数计划:函数返回未定义、预期的 Promise 或值