Horje
Define a 3 Level Nested Dictionary in Python

In Python, dictionaries provide a versatile way to store and organize data. Nested dictionaries, in particular, allow for the creation of multi-level structures. In this article, we’ll explore the process of defining a 3-level nested dictionary and demonstrate various methods to achieve this.

Define a 3-Level Nested Dictionary in Python

Below are some of the ways by which we can define a 3-level nested dictionary in Python:

  • Direct Assignment
  • Using a loop
  • Using defaultdict
  • Using dict.setdefault
  • Using recursion

Define a 3-Level Nested Dictionary By Direct Assignment

In this approach, we directly assign values to keys in a nested structure. It’s a straightforward approach when the structure is known in advance.

Python3

# Direct Assignment
nested_dict = {
    'first_level_key1': {
        'second_level_key1': {
            'third_level_key1': 'value1',
            'third_level_key2': 'value2',
        },
        'second_level_key2': {
            'third_level_key3': 'value3',
            'third_level_key4': 'value4',
        },
    },
    'first_level_key2': {
        'second_level_key3': {
            'third_level_key5': 'value5',
            'third_level_key6': 'value6',
        },
        'second_level_key4': {
            'third_level_key7': 'value7',
            'third_level_key8': 'value8',
        },
    },
}
 
# Example
print(nested_dict['first_level_key1']['second_level_key1']['third_level_key1'])

Output

value1


Define a 3-Level Nested Dictionary in Python Using a Loop

In this approach, we used a loop to iteratively create nested dictionaries. It’s useful when the key hierarchy is known beforehand.

Python3

# Using a loop
nested_dict = {}
keys_hierarchy = ['first_level_key1', 'second_level_key1', 'third_level_key1']
current_dict = nested_dict
 
for key in keys_hierarchy:
    current_dict = current_dict.setdefault(key, {})
 
current_dict['final_key'] = 'final_value'
 
# Example
print(nested_dict['first_level_key1']['second_level_key1']
      ['third_level_key1']['final_key'])

Output

final_value


Define a 3-Level Nested Dictionary Using Defaultdict

In this approach, we used defaultdict for a more dynamic creation of nested dictionaries. It automatically creates inner dictionaries when a key is accessed for the first time.

Python3

from collections import defaultdict
 
# Using defaultdict
nested_dict = defaultdict(lambda: defaultdict(dict))
nested_dict['first_level_key1']['second_level_key1']['third_level_key1'] = 'value1'
nested_dict['first_level_key1']['second_level_key1']['third_level_key2'] = 'value2'
 
# Example
print(nested_dict['first_level_key1']['second_level_key1']['third_level_key1'])

Output

value1


Define a 3-Level Nested Dictionary Using dict.setdefault()

In this approach, we used setdefault() to create nested dictionaries dynamically. It sets the default value for a key if it doesn’t exist.

Python3

#  Using dict.setdefault
nested_dict = {}
nested_dict.setdefault('first_level_key1', {}).setdefault(
    'second_level_key1', {})['third_level_key1'] = 'value1'
 
# Example
print(nested_dict['first_level_key1']['second_level_key1']['third_level_key1'])

Output

value1


Define a 3-Level Nested Dictionary Using Recursion

In this approach, we used a recursive function to add keys to nested dictionaries. It’s a flexible approach for dynamic nested structures.

Python3

# Using recursion
def add_nested_key(dictionary, keys, value):
    if len(keys) == 1:
        dictionary[keys[0]] = value
    else:
        add_nested_key(dictionary.setdefault(keys[0], {}), keys[1:], value)
 
 
nested_dict = {}
add_nested_key(nested_dict, ['first_level_key1',
                             'second_level_key1', 'third_level_key1'], 'value1')
 
# Example
print(nested_dict['first_level_key1']['second_level_key1']['third_level_key1'])

Output

value1


Conclusion

In this article we studied about creating a 3-level nested dictionary in Python using various methods. The choice of method depends on the specific requirements of your program, such as the need for dynamic creation, readability, or flexibility. Understanding these methods allows us to structure our data effectively and access values efficiently within the nested structure.




Reffered: https://www.geeksforgeeks.org


Python

Related
Starred Expression in Python Starred Expression in Python
Split a Python List into Sub-Lists Based on Index Ranges Split a Python List into Sub-Lists Based on Index Ranges
Python Program to Convert Temperatures using Classes Python Program to Convert Temperatures using Classes
Sum Integers Stored in JSON using Python Sum Integers Stored in JSON using Python
Install Specific Version of Spacy using Python PIP Install Specific Version of Spacy using Python PIP

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
15