Tässä artikkelissa opit Pythonin sisäkkäisistä sanakirjoista. Tarkemmin, opit luomaan sisäkkäisen sanakirjan, käyttämään elementtejä, muokkaamaan niitä ja niin edelleen esimerkkien avulla.
Pythonissa sanakirja on järjestämätön kokoelma esineitä. Esimerkiksi:
sanakirja = ('avain': 'arvo', 'avain_2': 'arvo_2')
Tässä sanakirjassa on key:value
pari, joka on suljettu sulkeissa ()
.
Lisätietoja sanakirjasta on Python-sanakirjassa.
Mikä on sisäkkäinen sanakirja Pythonissa?
Pythonissa sisäkkäinen sanakirja on sanakirjan sisällä oleva sanakirja. Se on kokoelma sanakirjoja yhdeksi sanakirjaksi.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Tässä sisäkkäinen_dikto on sisäkkäinen sanakirja, jossa on sanakirja dictA
ja dictB
. Ne ovat kaksi sanakirjaa, joilla kullakin on oma avain ja arvo.
Luo sisäkkäinen sanakirja
Aiomme luoda sanakirjan ihmisistä sanakirjaan.
Esimerkki 1: Sisäkkäisen sanakirjan luominen
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Kun suoritamme ohjelman yläpuolella, se tuottaa:
(1: ('nimi': 'John', 'ikä': '27', 'sukupuoli': 'mies'), 2: ('nimi': 'Marie', 'ikä': '22', 'sukupuoli ': 'Nainen'))
Yllä olevassa ohjelmassa ihmiset ovat sisäkkäisiä sanakirjoja. Sisäinen sanakirja 1
ja 2
on osoitettu ihmisille. Täällä molemmat sanakirjassa on avain name
, age
, sex
eri arvoilla. Tulostamme nyt ihmisten tulokset.
Sisäkkäisen sanakirjan käyttöelementit
Sisäkkäisen sanakirjan elementin käyttämiseksi käytämme indeksointisyntaksia ()
Pythonissa.
Esimerkki 2: Käytä elementtejä syntaksin () avulla
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'))
Kun suoritamme ohjelman yläpuolella, se tuottaa:
Johannes 27 Mies
Tulostamme yllä olevassa ohjelmassa avaimen arvon name
käyttämällä people(1)('name')
sisäisestä sanakirjasta 1
. Vastaavasti tulostamme arvon age
ja sex
yksi kerrallaan.
Lisää elementti sisäkkäiseen sanakirjaan
Esimerkki 3: Kuinka muuttaa tai lisätä elementtejä sisäkkäiseen sanakirjaan?
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))
Kun suoritamme ohjelman yläpuolella, se tuottaa:
('nimi': 'Luna', 'ikä': '24', 'sukupuoli': 'nainen', 'naimisissa': 'ei')
Yllä olevassa ohjelmassa luomme tyhjän sanakirjan sanakirjojen 3
sisällä.
Sitten lisätään key:value
pari eli people(3)('Name') = 'Luna'
sanakirjan sisälle 3
. Samoin teemme tämän avaimen age
, sex
ja married
yksi kerrallaan. Kun tulostamme people(3)
, saamme key:value
sanapareja 3
.
Esimerkki 4: Lisää toinen sanakirja sisäkkäisiin sanakirjoihin
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))
Kun suoritamme ohjelman yläpuolella, se tuottaa:
('nimi': 'Peter', 'ikä': '29', 'sukupuoli': 'mies', 'naimisissa': 'kyllä')
Yllä olevassa ohjelmassa määritämme sanakirjan kirjaimen people(4)
. Kirjaimellisesti on avaimet name
, age
ja sex
jossa on vastaavat arvot. Tulostamme sitten people(4)
, jotta sanakirja 4
lisätään sisäkkäisiin sanakirjoihin.
Poista elementit sisäkkäisestä sanakirjasta
Pythonissa poistamme elementit sisäkkäisestä sanakirjasta käyttämällä "del" -lauseketta.
Esimerkki 5: Kuinka poistaa elementtejä sisäkkäisestä sanakirjasta?
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))
Kun suoritamme ohjelman yläpuolella, se tuottaa:
('nimi': 'Luna', 'ikä': '24', 'sukupuoli': 'nainen') ('nimi': 'Peter', 'ikä': '29', 'sukupuoli': 'mies')
Poistamme yllä olevassa ohjelmassa key:value
parit married
sisäisestä sanakirjasta 3
ja 4
. Tulostamme sitten people(3)
ja people(4)
vahvistaaksesi muutokset.
Esimerkki 6: Kuinka sanakirja poistetaan sisäkkäisistä sanakirjoista?
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)
Kun suoritamme ohjelman yläpuolella, se tuottaa:
(1: ('nimi': 'John', 'ikä': '27', 'sukupuoli': 'mies'), 2: ('nimi': 'Marie', 'ikä': '22', 'sukupuoli ': 'Nainen'))
Yllä olevassa ohjelmassa poistamme sisäinen sanakirja 3
ja 4
käyttö del
sisäkkäisistä sanakirjoista. Tulostamme sitten sisäkkäiset sanakirjat muutosten vahvistamiseksi.
Iteroituminen sisäkkäisen sanakirjan kautta
Käyttämällä for -silmukoita voimme toistaa sisäkkäisen sanakirjan jokaisen elementin läpi.
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.
- Sanakirjaan pääsee näppäimellä.