Z tego artykułu dowiesz się o zagnieżdżonym słowniku w Pythonie. Dokładniej, nauczysz się tworzyć zagnieżdżone słowniki, uzyskiwać dostęp do elementów, modyfikować je i tak dalej, korzystając z przykładów.
W Pythonie słownik to nieuporządkowany zbiór elementów. Na przykład:
słownik = ('klucz': 'wartość', 'klucz_2': 'wartość_2')
Tutaj słownik ma key:value
parę zamkniętą w nawiasach klamrowych ()
.
Aby dowiedzieć się więcej o słowniku, odwiedź Słownik języka Python.
Co to jest słownik zagnieżdżony w Pythonie?
W Pythonie słownik zagnieżdżony to słownik znajdujący się wewnątrz słownika. To zbiór słowników w jednym słowniku.
nested_dict = ('dictA': ('klucz_1': 'wartość_1'), 'dictB': ('klucz_2': 'wartość_2'))
Tutaj nested_dict jest zagnieżdżonym słownikiem ze słownikiem dictA
i dictB
. Są to dwa słowniki, z których każdy ma własny klucz i wartość.
Utwórz słownik zagnieżdżony
Zamierzamy stworzyć słownik osób w słowniku.
Przykład 1: Jak utworzyć zagnieżdżony słownik
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Kiedy uruchomimy powyższy program, wyświetli:
(1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Płeć żeńska'))
W powyższym programie people to zagnieżdżony słownik. Słownik wewnętrzny 1
i 2
jest przypisany do osób. Tutaj zarówno słownika mieć klucz name
, age
, sex
z różnymi wartościami. Teraz drukujemy wynik osób.
Dostęp do elementów zagnieżdżonego słownika
Aby uzyskać dostęp do elementu zagnieżdżonego słownika, używamy ()
składni indeksowania w Pythonie.
Przykład 2: Uzyskaj dostęp do elementów za pomocą składni ()
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'))
Kiedy uruchomimy powyższy program, wyświetli:
John 27 Male
W powyższym programie wypisujemy wartość klucza name
używając np. people(1)('name')
Z wewnętrznego słownika 1
. Podobnie drukujemy wartość age
i sex
jeden po drugim.
Dodaj element do zagnieżdżonego słownika
Przykład 3: Jak zmienić lub dodać elementy w zagnieżdżonym słowniku?
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))
Kiedy uruchomimy powyższy program, wyświetli:
('imię': 'Luna', 'wiek': '24', 'płeć': 'Kobieta', 'mężatka': 'Nie')
W powyższym programie tworzymy pusty słownik 3
wewnątrz słownika people.
Następnie dodajemy key:value
parę tj. people(3)('Name') = 'Luna'
Wewnątrz słownika 3
. Podobnie robimy to dla klucza age
, sex
a married
jeden po drugim. Kiedy drukujemy people(3)
, otrzymujemy key:value
pary słowników 3
.
Przykład 4: Dodaj kolejny słownik do zagnieżdżonego słownika
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))
Kiedy uruchomimy powyższy program, wyświetli:
('imię': 'Piotr', 'wiek': '29', 'płeć': 'Mężczyzna', 'żonaty': 'Tak')
W powyższym programie przypisujemy literał słownikowy do people(4)
. Dosłowne mają klucze name
, age
oraz sex
z odpowiednimi wartościami. Następnie drukujemy people(4)
, aby zobaczyć, że słownik 4
jest dodawany w zagnieżdżonych ludziach słownika.
Usuń elementy z zagnieżdżonego słownika
W Pythonie do usuwania elementów z zagnieżdżonego słownika używamy instrukcji „del”.
Przykład 5: Jak usunąć elementy z zagnieżdżonego słownika?
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))
Kiedy uruchomimy powyższy program, wyświetli:
('imię': 'Luna', 'wiek': '24', 'płeć': 'Kobieta') ('imię': 'Piotr', 'wiek': '29', 'płeć': 'Mężczyzna')
W powyższym programie usuwamy key:value
pary married
z wewnętrznego słownika 3
i 4
. Następnie drukujemy people(3)
i w people(4)
celu potwierdzenia zmian.
Przykład 6: Jak usunąć słownik z zagnieżdżonego słownika?
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)
Kiedy uruchomimy powyższy program, wyświetli:
(1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Płeć żeńska'))
W powyższym programie usuwamy zarówno słownik wewnętrzny, jak 3
i osoby 4
korzystające del
z zagnieżdżonego słownika. Następnie drukujemy osoby ze słownika zagnieżdżonego, aby potwierdzić zmiany.
Iteracja po zagnieżdżonym słowniku
Używając pętli for, możemy iterować po każdym elemencie zagnieżdżonego słownika.
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.
- Dostęp do słownika uzyskuje się za pomocą klucza.