首页 > 解决方案 > 按值对字典排序

问题描述

我有一个显示表格和固定装置等的欧元代码。对于表格,我将它们以不变的顺序存储在 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和其他相关问题,但仍然无法弄清楚它是怎么可能的,请帮忙吗?

标签: pythondictionary

解决方案


正如在另一个线程中所说,您无法对字典进行排序,因为它是它的工作方式,这里的解决方法是创建这样的字典列表,但是使用它仍然很痛苦,并且您失去了字典的优势

table = [
{"Italy": {...}},
{"Switzerland": {...}},
...
{"Wales": {...}},
]

另一种解决方法是创建 OrderedDict,但它已经在您问题的链接中进行了解释


推荐阅读