-1
"users": {
    "673336994218377285": {"votes": 5},
    "541388453708038165": {"votes": 1},
    "845444326065700865": {"votes": 9}
}

如何根据嵌套字典的“投票”键对字典进行排序?字典应该是这样的:

"users": {
    "845444326065700865": {"votes": 9},
    "673336994218377285": {"votes": 5},
    "541388453708038165": {"votes": 1}
}
4

1 回答 1

4

Python 中的字典(自 3.6 起)按其插入顺序排序,因此您必须创建一个新字典,其中的元素按其排序顺序插入:

users = {
    "673336994218377285": {"votes": 5},
    "541388453708038165": {"votes": 1},
    "845444326065700865": {"votes": 9}
}

dict(sorted(users.items(), key=lambda x: x[1]['votes'], reverse=True))

key=lambda x: x[1]['votes']使它根据每个项目的值的“投票”字段对每个元素进行排序。

如果您使用的是旧版本的 Python,则不会对字典进行排序,因此您必须使用相同的方法来collections.OrderedDict代替dict.

于 2021-09-24T22:17:07.550 回答