python - 按值对字典排序
问题描述
我有一个显示表格和固定装置等的欧元代码。对于表格,我将它们以不变的顺序存储在 json 文件中,如下所示:
"Table": {
"Italy": {
"Played": 0,
"Won": 0,
"Draw": 0,
"Lost": 0,
"PF": 0,
"PA": 0,
"PD": 0,
"Points": 0
},
"Switzerland": {
"Played": 0,
"Won": 0,
"Draw": 0,
"Lost": 0,
"PF": 0,
"PA": 0,
"PD": 0,
"Points": 0
},
"Turkey": {
"Played": 0,
"Won": 0,
"Draw": 0,
"Lost": 0,
"PF": 0,
"PA": 0,
"PD": 0,
"Points": 0
},
"Wales": {
"Played": 0,
"Won": 0,
"Draw": 0,
"Lost": 0,
"PF": 0,
"PA": 0,
"PD": 0,
"Points": 0
}
}
我希望能够按他们拥有的积分数量对团队进行排序,或者如果积分相同,则按积分差异对团队进行排序。我看过Python:sorting dictionary of dictionaries和其他相关问题,但仍然无法弄清楚它是怎么可能的,请帮忙吗?
解决方案
正如在另一个线程中所说,您无法对字典进行排序,因为它是它的工作方式,这里的解决方法是创建这样的字典列表,但是使用它仍然很痛苦,并且您失去了字典的优势
table = [
{"Italy": {...}},
{"Switzerland": {...}},
...
{"Wales": {...}},
]
另一种解决方法是创建 OrderedDict,但它已经在您问题的链接中进行了解释
推荐阅读
- arrays - PHP preg_grep 多文件
- google-chrome - 动态禁用 chrome 扩展中的多功能框
- jquery-easyui - Jquery EasyUI-如何在easyui-datagrid表td中选中或不选中复选框
- javascript - React Native Android - 自定义 BroadcastReceiver/Service 在几个小时后被杀死
- windows - 如何从文件名创建文件夹并将文件移动到文件夹中?
- c# - Linq 查询未在 MVC 应用程序中转换为字符串
- c# - 如何使用 selectedIndexChanged 访问工作表数据?
- sql - 从行组合中查找重复项
- ssl - 当负载均衡器终止 SSL 连接时,它是否会创建到目标服务器的新 TCP 连接?
- python - 直接向gunicorn发送请求