Skip to content
Related Articles

Related Articles

Python – Maximum value assignment in Nested Dictionary
  • Last Updated : 14 May, 2020

Sometimes, while working with Python dictionaries, we can have a problem in which we need to assign to the outer key, the item with maximum value in inner keys. This kind of problem can occur in day-day programming and web development domains. Let’s discuss a way in which this task can be performed.

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)}]

Method : Using Counter().most_common() + items() + loop
The combination of above functions constitute the brute way to solve this problem. In this, we extract the maximum element using most_common() and items() is used to extract key-value pair.




# 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)) 
Output :



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)}]

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :