Diccionario anidado de Python (con ejemplos)

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:valuepar 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 dictAy 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 1y 2está asignado a personas. Aquí, tanto el diccionario tiene llave name, age, sexcon 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 nameusando ie people(1)('name')desde el diccionario interno 1. Del mismo modo, imprimimos el valor de agey sexuno 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 3dentro de la gente del diccionario.

Luego, agregamos el key:valuepar, es decir, people(3)('Name') = 'Luna'dentro del diccionario 3. Del mismo modo, hacemos esto por clave age, sexy marrieduno por uno. Cuando imprimimos people(3), obtenemos key:valuepares 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, agey sexcon los valores respectivos. Luego imprimimos el people(4), para ver que el diccionario 4se 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:valuepares de marrieddel diccionario interno 3y 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 3como el 4uso deldel 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:

  1. Nested dictionary is an unordered collection of dictionary
  2. Slicing Nested Dictionary is not possible.
  3. We can shrink or grow nested dictionary as need.
  4. Like Dictionary, it also has key and value.
  5. Se accede al diccionario mediante la tecla.

Articulos interesantes...