【问题标题】:Order a dict of dicts by a value按值对字典排序
【发布时间】:2021-06-11 11:44:47
【问题描述】:

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

【问题讨论】:

  • 这能回答你的问题吗? Python: sorting dictionary of dictionaries
  • @Hotkuk 我已经在我的问题中找到了该问题的链接!
  • 是的,因为您的问题已经在链接中进行了解释,不知道为什么它会创建自动评论,但我只是将您的问题标记为重复
  • 如果您想按一些值对其进行排序,而不是将其保存在数据库或 pandas 数据框中

标签: python dictionary


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 2019-09-28
  • 2017-02-02
  • 2011-02-22
相关资源
最近更新 更多