Dizionario annidato Python (con esempi)

In questo articolo imparerai a conoscere il dizionario annidato in Python. Più specificamente, imparerai a creare un dizionario annidato, accedere a elementi, modificarli e così via con l'aiuto di esempi.

In Python, un dizionario è una raccolta di elementi non ordinata. Per esempio:

 dizionario = ('chiave': 'valore', 'chiave_2': 'valore_2')

Qui, il dizionario ha una key:valuecoppia racchiusa tra parentesi graffe ().

Per saperne di più sul dizionario, visita Python Dictionary.

Cos'è il dizionario annidato in Python?

In Python, un dizionario annidato è un dizionario all'interno di un dizionario. È una raccolta di dizionari in un unico dizionario.

 nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))

In questo caso, nested_dict è un dizionario annidato con il dizionario dictAe dictB. Sono due dizionari ciascuno con chiave e valore propri.

Crea un dizionario annidato

Creeremo un dizionario di persone all'interno di un dizionario.

Esempio 1: come creare un dizionario annidato

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)

Quando eseguiamo il programma sopra, verrà visualizzato:

 (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ':' Femmina '))

Nel programma precedente, people è un dizionario annidato. Il dizionario interno 1ed 2è assegnato alle persone. Qui, sia il dizionario ha chiave name, age, sexcon valori diversi. Ora stampiamo il risultato delle persone.

Accesso agli elementi di un dizionario annidato

Per accedere a un elemento di un dizionario annidato, usiamo la ()sintassi di indicizzazione in Python.

Esempio 2: accedere agli elementi utilizzando la sintassi ()

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

Quando eseguiamo il programma sopra, verrà visualizzato:

 John 27 Maschio

Nel programma sopra, stampiamo il valore della chiave nameusando ie people(1)('name')dal dizionario interno 1. Allo stesso modo, stampiamo il valore di agee sexuno per uno.

Aggiungi elemento a un dizionario annidato

Esempio 3: come modificare o aggiungere elementi in un dizionario annidato?

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

Quando eseguiamo il programma sopra, verrà visualizzato:

 ("name": "Luna", "age": "24", "sex": "Female", "married": "No")

Nel programma sopra, creiamo un dizionario vuoto 3all'interno del dizionario people.

Quindi, aggiungiamo la key:valuecoppia, cioè people(3)('Name') = 'Luna'all'interno del dizionario 3. Allo stesso modo, facciamo questo per la chiave age, sexe marriedad uno ad uno. Quando stampiamo il people(3), otteniamo key:valuecoppie di dizionario 3.

Esempio 4: aggiungere un altro dizionario al dizionario nidificato

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

Quando eseguiamo il programma sopra, verrà visualizzato:

 ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes')

Nel programma sopra, assegniamo un dizionario letterale a people(4). Letterale hanno chiavi name, agee sexcon rispettivi valori. Quindi stampiamo il people(4), per vedere che il dizionario 4viene aggiunto nelle persone del dizionario annidate.

Elimina elementi da un dizionario annidato

In Python, usiamo l'istruzione "del" per eliminare elementi dal dizionario annidato.

Esempio 5: come eliminare elementi da un dizionario annidato?

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

Quando eseguiamo il programma sopra, verrà visualizzato:

 ('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Male')

Nel programma sopra, cancelliamo le key:valuecoppie di marrieddal dizionario interno 3e 4. Quindi, stampiamo people(3)e people(4)per confermare le modifiche.

Esempio 6: come eliminare un dizionario da un dizionario annidato?

 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)

Quando eseguiamo il programma sopra, verrà visualizzato:

 (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ':' Femmina '))

Nel programma sopra, cancelliamo sia il dizionario interno 3che 4using deldal dizionario annidato people. Quindi, stampiamo le persone del dizionario annidate per confermare le modifiche.

Iterazione attraverso un dizionario annidato

Usando i cicli for, possiamo iterare attraverso ogni elemento in un dizionario annidato.

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. Si accede al dizionario usando la chiave.

Articoli interessanti...