En este artículo, aprenderá sobre el diccionario anidado en Python. Más específicamente, aprenderá a crear un diccionario anidado, acceder a elementos, modificarlos, etc. con la ayuda de ejemplos.
En Python, un diccionario es una colección desordenada de elementos. Por ejemplo:
diccionario = ('clave': 'valor', 'clave_2': 'valor_2')
Aquí, el diccionario tiene un key:value
par entre llaves ()
.
Para obtener más información sobre el diccionario, visite Diccionario de Python.
¿Qué es el diccionario anidado en Python?
En Python, un diccionario anidado es un diccionario dentro de un diccionario. Es una colección de diccionarios en un solo diccionario.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Aquí, nested_dict es un diccionario anidado con el diccionario dictA
y dictB
. Son dos diccionarios, cada uno con su propia clave y valor.
Crear un diccionario anidado
Vamos a crear un diccionario de personas dentro de un diccionario.
Ejemplo 1: cómo crear un diccionario anidado
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Cuando ejecutamos el programa anterior, saldrá:
(1: ('nombre': 'Juan', 'edad': '27', 'sexo': 'Hombre'), 2: ('nombre': 'Marie', 'edad': '22', 'sexo ':' Mujer '))
En el programa anterior, personas es un diccionario anidado. El diccionario interno 1
y 2
está asignado a personas. Aquí, tanto el diccionario tiene llave name
, age
, sex
con diferentes valores. Ahora imprimimos el resultado de personas.
Acceder a elementos de un diccionario anidado
Para acceder al elemento de un diccionario anidado, usamos la ()
sintaxis de indexación en Python.
Ejemplo 2: Acceda a los elementos usando la sintaxis ()
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people(1)('name')) print(people(1)('age')) print(people(1)('sex'))
Cuando ejecutamos el programa anterior, saldrá:
John 27 Hombre
En el programa anterior, imprimimos el valor de la clave name
usando ie people(1)('name')
desde el diccionario interno 1
. Del mismo modo, imprimimos el valor de age
y sex
uno por uno.
Agregar elemento a un diccionario anidado
Ejemplo 3: ¿Cómo cambiar o agregar elementos en un diccionario anidado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) people(3) = () people(3)('name') = 'Luna' people(3)('age') = '24' people(3)('sex') = 'Female' people(3)('married') = 'No' print(people(3))
Cuando ejecutamos el programa anterior, saldrá:
('nombre': 'Luna', 'edad': '24', 'sexo': 'Mujer', 'casada': 'No')
En el programa anterior, creamos un diccionario vacío 3
dentro de la gente del diccionario.
Luego, agregamos el key:value
par, es decir, people(3)('Name') = 'Luna'
dentro del diccionario 3
. Del mismo modo, hacemos esto por clave age
, sex
y married
uno por uno. Cuando imprimimos people(3)
, obtenemos key:value
pares de diccionario 3
.
Ejemplo 4: agregar otro diccionario al diccionario anidado
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No')) people(4) = ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes') print(people(4))
Cuando ejecutamos el programa anterior, saldrá:
('nombre': 'Pedro', 'edad': '29', 'sexo': 'Hombre', 'casado': 'Sí')
En el programa anterior, asignamos un literal de diccionario a people(4)
. El literal tienen llaves name
, age
y sex
con los valores respectivos. Luego imprimimos el people(4)
, para ver que el diccionario 4
se agrega en personas de diccionario anidadas.
Eliminar elementos de un diccionario anidado
En Python, usamos la declaración "del" para eliminar elementos del diccionario anidado.
Ejemplo 5: ¿Cómo eliminar elementos de un diccionario anidado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes')) del people(3)('married') del people(4)('married') print(people(3)) print(people(4))
Cuando ejecutamos el programa anterior, saldrá:
('nombre': 'Luna', 'edad': '24', 'sexo': 'Mujer') ('nombre': 'Pedro', 'edad': '29', 'sexo': 'Hombre')
En el programa anterior, eliminamos los key:value
pares de married
del diccionario interno 3
y 4
. Luego, imprimimos los people(3)
y people(4)
para confirmar los cambios.
Ejemplo 6: ¿Cómo eliminar un diccionario de un diccionario anidado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male')) del people(3), people(4) print(people)
Cuando ejecutamos el programa anterior, saldrá:
(1: ('nombre': 'Juan', 'edad': '27', 'sexo': 'Hombre'), 2: ('nombre': 'Marie', 'edad': '22', 'sexo ':' Mujer '))
En el programa anterior, eliminamos tanto el diccionario interno 3
como el 4
uso del
del diccionario anidado. Luego, imprimimos las personas del diccionario anidado para confirmar los cambios.
Iterando a través de un diccionario anidado
Usando los bucles for, podemos iterar a través de cada elemento en un diccionario anidado.
Example 7: How to iterate through a Nested dictionary?
people = (1: ('Name': 'John', 'Age': '27', 'Sex': 'Male'), 2: ('Name': 'Marie', 'Age': '22', 'Sex': 'Female')) for p_id, p_info in people.items(): print("Person ID:", p_id) for key in p_info: print(key + ':', p_info(key))
When we run above program, it will output:
Person ID: 1 Name: John Age: 27 Sex: Male Person ID: 2 Name: Marie Age: 22 Sex: Female
In the above program, the first loop returns all the keys in the nested dictionary people. It consist of the IDs p_id of each person. We use these IDs to unpack the information p_info of each person.
The second loop goes through the information of each person. Then, it returns all of the keys name
, age
, sex
of each person's dictionary.
Now, we print the key of the person’s information and the value for that key.
Key Points to Remember:
- Nested dictionary is an unordered collection of dictionary
- Slicing Nested Dictionary is not possible.
- We can shrink or grow nested dictionary as need.
- Like Dictionary, it also has key and value.
- Se accede al diccionario mediante la tecla.