Python – 按值对嵌套键进行排序
有时,在处理数据记录时,我们可能会遇到需要按出现值对字典的嵌套键进行排序的问题。这可以应用于安排分数、价格等。让我们讨论一种可以执行此任务的方式。
方法 #1:使用sorted()
+ lambda + 生成器表达式
上述方法的组合可用于执行此任务。在此,我们使用 sorted() 执行排序任务,lambda 和生成器表达式用于绑定和提取字典的值。
# Python3 code to demonstrate working of
# Sort Nested keys by Value
# Using sorted() + generator expression + lamda
# initializing dictionary
test_dict = {'Nikhil' : {'English' : 5, 'Maths' : 2, 'Science' : 14},
'Akash' : {'English' : 15, 'Maths' : 7, 'Science' : 2},
'Akshat' : {'English' : 5, 'Maths' : 50, 'Science' : 20}}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Sort Nested keys by Value
# Using sorted() + generator expression + lamda
res = {key : dict(sorted(val.items(), key = lambda ele: ele[1]))
for key, val in test_dict.items()}
# printing result
print("The sorted dictionary : " + str(res))
输出 :
The original dictionary : {‘Nikhil’: {‘English’: 5, ‘Maths’: 2, ‘Science’: 14}, ‘Akash’: {‘English’: 15, ‘Maths’: 7, ‘Science’: 2}, ‘Akshat’: {‘English’: 5, ‘Maths’: 50, ‘Science’: 20}}
The sorted dictionary : {‘Nikhil’: {‘Maths’: 2, ‘English’: 5, ‘Science’: 14}, ‘Akash’: {‘Science’: 2, ‘Maths’: 7, ‘English’: 15}, ‘Akshat’: {‘English’: 5, ‘Science’: 20, ‘Maths’: 50}}