python - 在 Python 中对多级 orderdict 进行排序?
问题描述
我有一个 OrderDict 类型的字典,如下所示:
>>> from collections import OrderedDict
>>> d=OrderedDict()
>>> d['a']=(dict({'key1': 40}))
>>> d['a'].update(dict({'key2': 10}))
>>> d
OrderedDict([('a', {'key1': 40, 'key2': 10})])
>>> d.values()
odict_values([{'key1': 40, 'key2': 10}])
现在,我正在尝试按字典的值(即 10 和 40)对创建的 orderDict 进行排序,但似乎它一直按键排序。这是我正在做的事情:
>>> sorted(list(d.values())[0], key=lambda x: x[1])
['key1', 'key2']
我希望得到这个:
{'a': {'key2': 10, 'key1': 40}}
解决方案
为了按值对字典进行排序,d.get
请用作排序键:
{k: d[k] for k in sorted(d, key=d.get)}
推荐阅读
- kubernetes - 如何在 Istio 中路由 gRPC?
- r - r - 显示范围滑块的刻度(情节)
- lvm - ISCSI 上的 Proxmox LVM 调整大小
- html - 图像未居中
- python - Python中用户定义的croston函数
- python - 按日期分组不能在 Pandas 中排序?
- angular - Angular 6:无法绑定到“FormGroup”,因为它不是“form”的已知属性
- c++ - C++ 文件帮助,加密和解密字符串
- python-3.x - 在python中按年分组列表和按月分组
- ms-access - 任何可用于限制子表单仅显示 MS Access 中前 10 条更新记录的选项