我在字典里面有一个字典,我希望打印整个字典但是在子字典中的值中排序
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帖子,但我并不完全理解。 如果你能保持简单,那就太棒了 是的,我正在制作一个程序来分类和处理我的作业 提前致谢
答案 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
的期望值排序。