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:value
coppia 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 dictA
e 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 1
ed 2
è assegnato alle persone. Qui, sia il dizionario ha chiave name
, age
, sex
con 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 name
usando ie people(1)('name')
dal dizionario interno 1
. Allo stesso modo, stampiamo il valore di age
e sex
uno 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 3
all'interno del dizionario people.
Quindi, aggiungiamo la key:value
coppia, cioè people(3)('Name') = 'Luna'
all'interno del dizionario 3
. Allo stesso modo, facciamo questo per la chiave age
, sex
e married
ad uno ad uno. Quando stampiamo il people(3)
, otteniamo key:value
coppie 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
, age
e sex
con rispettivi valori. Quindi stampiamo il people(4)
, per vedere che il dizionario 4
viene 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:value
coppie di married
dal dizionario interno 3
e 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 3
che 4
using del
dal 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:
- 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.
- Si accede al dizionario usando la chiave.