Open In App
Related Articles

Python Nested Dictionary

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

A Dictionary in Python works similarly to the Dictionary in the real world. The keys of a Dictionary must be unique and of immutable data types such as Strings, Integers, and tuples, but the key values can be repeated and be of any type.

What is Python in Nested Dictionary?

Nesting Dictionary means putting a dictionary inside another dictionary. Nesting is of great use as the kind of information we can model in programs is expanded greatly.

nested_dict = {'dict1': {'key_A': 'value_A'},
               'dict2': {'key_B': 'value_B'}}

Example

Python3

# As shown in image
 
# Creating a Nested Dictionary
Dict = {1: 'Geeks', 2: 'For', 3: {'A': 'Welcome', 'B': 'To', 'C': 'Geeks'}}

                    

Illustration using Image

Python Nested Dictionary

 

Creating a Nested Dictionary

In Python, a Nested dictionary can be created by placing the comma-separated dictionaries enclosed within braces. 

Python3

# Empty nested dictionary
Dict = { 'Dict1': { },
        'Dict2': { }}
print("Nested dictionary 1-")
print(Dict)
 
# Nested dictionary having same keys
Dict = { 'Dict1': {'name': 'Ali', 'age': '19'},
        'Dict2': {'name': 'Bob', 'age': '25'}}
print("\nNested dictionary 2-")
print(Dict)
 
# Nested dictionary of mixed dictionary keys
Dict = { 'Dict1': {1: 'G', 2: 'F', 3: 'G'},
        'Dict2': {'Name': 'Geeks', 1: [1, 2]} }
print("\nNested dictionary 3-")
print(Dict)

                    

Output:

Nested dictionary 1-
{'Dict1': {}, 'Dict2': {}}

Nested dictionary 2-
{'Dict1': {'name': 'Ali', 'age': '19'}, 'Dict2': {'name': 'Bob', 'age': '25'}}

Nested dictionary 3-
{'Dict1': {1: 'G', 2: 'F', 3: 'G'}, 'Dict2': {1: [1, 2], 'Name': 'Geeks'}}

Adding Elements to a Nested Dictionary

The addition of elements to a nested Dictionary can be done in multiple ways. One way to add a dictionary in the Nested dictionary is to add values one be one, Nested_dict[dict][key] = ‘value’. Another way is to add the whole dictionary in one go, Nested_dict[dict] = { ‘key’: ‘value’}.

Python3

Dict = { }
print("Initial nested dictionary:-")
print(Dict)
 
Dict['Dict1'] = {}
 
# Adding elements one at a time
Dict['Dict1']['name'] = 'Bob'
Dict['Dict1']['age'] = 21
print("\nAfter adding dictionary Dict1")
print(Dict)
 
# Adding whole dictionary
Dict['Dict2'] = {'name': 'Cara', 'age': 25}
print("\nAfter adding dictionary Dict1")
print(Dict)

                    

Output:

Initial nested dictionary:-
{}

After adding dictionary Dict1
{'Dict1': {'age': 21, 'name': 'Bob'}}

After adding dictionary Dict1
{'Dict1': {'age': 21, 'name': 'Bob'}, 'Dict2': {'age': 25, 'name': 'Cara'}}

Access Elements of a Nested Dictionary

In order to access the value of any key in the nested dictionary, use indexing [] syntax.

Python3

# Nested dictionary having same keys
Dict = { 'Dict1': {'name': 'Ali', 'age': '19'},
        'Dict2': {'name': 'Bob', 'age': '25'}}
 
# Prints value corresponding to key 'name' in Dict1
print(Dict['Dict1']['name'])
 
# Prints value corresponding to key 'age' in Dict2
print(Dict['Dict2']['age'])

                    

Output: 

Ali
25

Deleting Dictionaries from a Nested Dictionary

Deletion of dictionaries from a nested dictionary can be done either by using the Python del keyword or by using pop() function.

Python3

Dict = {'Dict1': {'name': 'Ali', 'age': 19},
        'Dict2': {'name': 'Bob', 'age': 21}}
print("Initial nested dictionary:-")
print(Dict)
 
# Deleting dictionary using del keyword
print("\nDeleting Dict2:-")
del Dict['Dict2']
print(Dict)
 
# Deleting dictionary using pop function
print("\nDeleting Dict1:-")
Dict.pop('Dict1')
print (Dict)

                    

Output: 

Initial nested dictionary:-
{'Dict2': {'name': 'Bob', 'age': 21}, 'Dict1': {'name': 'Ali', 'age': 19}}

Deleting Dict2:-
{'Dict1': {'name': 'Ali', 'age': 19}}

Deleting Dict1:-
{}


Last Updated : 10 Jun, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads