Python – 嵌套字典中的最大值赋值
有时,在使用Python字典时,我们可能会遇到需要分配给外部键的问题,即内部键中具有最大值的项。这类问题可能发生在日常编程和 Web 开发领域。让我们讨论一种可以执行此任务的方式。
Input : test_dict = {‘Manjeet’: {‘English’: 19, ‘Maths’: 1}, ‘Himani’: {‘English’: 18, ‘Maths’: 17}}
Output : [{‘Manjeet’: (‘English’, 19)}, {‘Himani’: (‘English’, 18)}]
Input : test_dict = {‘Manjeet’ : {‘Maths’:10}}
Output : [{‘Manjeet’: (‘Maths’, 10)}]
方法:使用Counter().most_common() + items()
+ 循环
上述功能的组合构成了解决此问题的蛮力方法。在此,我们使用 most_common() 提取最大元素,而 items() 用于提取键值对。
# Python3 code to demonstrate working of
# Maximum value assignment in Nested Dictionary
# Using Counter().most_common() + items() + loop
from collections import Counter
# initializing dictionary
test_dict = {'Manjeet' : {'Maths':1, 'English':0, 'Physics':2, 'Chemistry':3},
'Akash' : {'Maths':0, 'English':0, 'Physics':3, 'Chemistry':2},
'Nikhil': {'Maths':4, 'English':2, 'Physics':2, 'Chemistry':3},
'Akshat': {'Maths':1, 'English':0, 'Physics':2, 'Chemistry':0}}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Maximum value assignment in Nested Dictionary
# Using Counter().most_common() + items() + loop
res = []
for key, val in test_dict.items():
cnt = Counter(val)
res.append({key : cnt.most_common(1)[0]})
# printing result
print("Maximum element key : " + str(res))
The original dictionary : {‘Nikhil’: {‘Chemistry’: 3, ‘Physics’: 2, ‘Maths’: 4, ‘English’: 2}, ‘Akash’: {‘Chemistry’: 2, ‘Physics’: 3, ‘Maths’: 0, ‘English’: 0}, ‘Akshat’: {‘Chemistry’: 0, ‘Physics’: 2, ‘Maths’: 1, ‘English’: 0}, ‘Manjeet’: {‘Chemistry’: 3, ‘Physics’: 2, ‘Maths’: 1, ‘English’: 0}}
Maximum element key : [{‘Nikhil’: (‘Maths’, 4)}, {‘Akash’: (‘Physics’, 3)}, {‘Akshat’: (‘Physics’, 2)}, {‘Manjeet’: (‘Chemistry’, 3)}]