提问人:Popcycle999 提问时间:10/28/2023 最后编辑:marc_sPopcycle999 更新时间:10/28/2023 访问量:15
如何按值对字典中的字典进行排序?
How to sort a dictionary inside a dictionary by values?
问:
我正在尝试对这本包含曲棍球队部门的词典进行排序。每个团队都是字典的一个元素,每个团队的值都是一个字典,其中包含多个点 (PTS) 和 VRP 统计数据。
我正在尝试根据每个部门内的球队按降序排列。每个部门的排序都是独立的。
这是我的代码:
dic = {
"Atlantic": {
"TeamA": {"PTS": 80, "VRP": 35},
"TeamB": {"PTS": 65, "VRP": 31},
"TeamC": {"PTS": 80, "VRP": 30}
},
"Metropolitan": {
"TeamD": {"PTS": 60, "VRP": 29},
"TeamE": {"PTS": 65, "VRP": 28}
}
}
def ranking_sorting(ranking):
for division in ranking.values():
division = dict(sorted(division.items(), key=lambda x:x[1]["PTS"], reverse = True))
ranking_sorting(dic)
print(dic)
我尝试使用 lambda 函数作为排序函数中的键,以 key=lambda x:[1][“PTS”] 访问团队值中的 PTS 值。
这是我预期的结果:
{
"Atlantic": {
"TeamA": {"PTS": 80, "VRP": 35},
"TeamC": {"PTS": 80, "VRP": 30}
"TeamB": {"PTS": 65, "VRP": 31},
},
"Metropolitan": {
"TeamE": {"PTS": 65, "VRP": 28}
"TeamD": {"PTS": 60, "VRP": 29},
}
}
当我尝试打印字典时,我取回了原始字典,但它没有排序。
答:
0赞
Popcycle999
10/28/2023
#1
我想通了。我需要将“分区”团队分配给分区:
def trier_classement(classement):
for nom_divison, equipes in classement.items():
equipes = dict(sorted(equipes.items(), key=lambda x:x[1]["PTS"], reverse = True))
classement[nom_divison] = equipes
分区团队确实被分类了,但我没有将它们分配到主词典中。
评论