Zagnieżdżony słownik Pythona (z przykładami)

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:valueparę 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 dictAi 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 1i 2jest przypisany do osób. Tutaj zarówno słownika mieć klucz name, age, sexz 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 nameużywając np. people(1)('name')Z wewnętrznego słownika 1. Podobnie drukujemy wartość agei sexjeden 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 3wewnątrz słownika people.

Następnie dodajemy key:valueparę tj. people(3)('Name') = 'Luna'Wewnątrz słownika 3. Podobnie robimy to dla klucza age, sexa marriedjeden po drugim. Kiedy drukujemy people(3), otrzymujemy key:valuepary 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, ageoraz sexz odpowiednimi wartościami. Następnie drukujemy people(4), aby zobaczyć, że słownik 4jest 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:valuepary marriedz wewnętrznego słownika 3i 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 3i osoby 4korzystające delz 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:

  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. Dostęp do słownika uzyskuje się za pomocą klucza.

Interesujące artykuły...