Diccionario anidado de Python

Requisito previo: diccionario de Python
Un diccionario en Python funciona de manera similar al diccionario en el mundo real. Las claves de un diccionario deben ser únicas y de tipo de datos inmutables como strings, enteros y tuplas, pero los valores clave pueden repetirse y ser de cualquier tipo.
Diccionario anidado: Diccionario anidado significa poner un diccionario dentro de otro diccionario. El anidamiento es de gran utilidad ya que el tipo de información que podemos modelar en los programas se amplía enormemente. 
 

Python3

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

Python3

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

Creación de un diccionario anidado

En Python, se puede crear un diccionario anidado colocando los diccionarios separados por comas encerrados entre llaves. 
 

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)

Producción:
 

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'}}

Adición de elementos a un diccionario anidado

La adición de elementos a un diccionario anidado se puede realizar de varias formas. Una forma de agregar un diccionario en el diccionario anidado es agregar valores uno sea uno, Nested_dict[dict][clave] = ‘valor’. Otra forma es agregar todo el diccionario de una sola vez, 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)

Producción: 
 

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'}}

Acceder a elementos de un diccionario anidado

Para acceder al valor de cualquier clave en el diccionario anidado, use la sintaxis de indexación []. 
 

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

Producción: 
 

Ali
25

Eliminación de diccionarios de un diccionario anidado

La eliminación de diccionarios de un diccionario anidado se puede hacer usando la palabra clave del o usando la función pop(). 
 

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)

Producción: 
 

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

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

Deleting Dict1:-
{}

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *