如何打印按字典值排序的字典?

时间:2014-06-19 16:41:15

标签: sorting python-3.x dictionary printing

我在字典里面有一个字典,我希望打印整个字典但是在子字典中的值中排序

Lesson = {Name:{'Rating':Rating, 'Desc':Desc, 'TimeLeftTask':Timeleft}}

Lesson = {'Math':{'Rating':11, 'Desc':'Exercises 14 and 19 page 157', 'TimeLeftTask':7}, 'English':{'Rating':23, 'Desc':'Exercise 5 page 204', 'TimeLeftTask':2}}

我想以打印此dict为例,但按“评级”(顶部的高位数)排序 我已阅读this帖子,但我并不完全理解。 如果你能保持简单,那就太棒了 是的,我正在制作一个程序来分类和处理我的作业 提前致谢

1 个答案:

答案 0 :(得分:0)

def sort_by_subdict(dictionary, subdict_key):
    return sorted(dictionary.items(), key=lambda k_v: k_v[1][subdict_key])

Lesson = {'Math':{'Rating':11, 'Desc':'Exercises 14 and 19 page 157', 'TimeLeftTask':7}, 'English':{'Rating':23, 'Desc':'Exercise 5 page 204', 'TimeLeftTask':2}}
print(sort_by_subdict(Lesson, 'Rating'))

由于dictionary中没有顺序概念,我们需要将字典表示为键,值对元组的列表,以保留排序顺序。

您提到的so question使用sorted函数对字典进行排序,以便返回(k, v)元组列表(此处k表示密钥& {{1}顶级字典的意思是“值”),按子字典v的期望值排序。