V tomto článku sa dozviete o vnorenom slovníku v jazyku Python. Konkrétnejšie sa pomocou príkladov naučíte vytvárať vnorené slovníky, pristupovať k prvkom, upravovať ich atď.
V Pythone je slovník neusporiadanou zbierkou položiek. Napríklad:
dictionary = ('key': 'value', 'key_2': 'value_2')
V tomto slovníku je key:value
dvojica uzavretá v zložených zátvorkách ()
.
Ak sa chcete dozvedieť viac informácií o slovníku, navštívte slovník Python.
Čo je vnorený slovník v Pythone?
V Pythone je vnoreným slovníkom slovník v slovníku. Je to zbierka slovníkov do jedného slovníka.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Nested_dict je vnorený slovník so slovníkom dictA
a dictB
. Sú to dva slovníky, z ktorých každý má svoj vlastný kľúč a hodnotu.
Vytvorte vnorený slovník
Chystáme sa vytvoriť slovník ľudí v slovníku.
Príklad 1: Ako vytvoriť vnorený slovník
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Keď spustíme program vyššie, vygeneruje sa:
(1: („meno“: „John“, „vek“: „27“, „pohlavie“: „muž“), 2: („meno“: „Marie“, „vek“: „22“, „pohlavie“ ': 'Žena'))
Vo vyššie uvedenom programe sú ľudia vnoreným slovníkom. Interný slovník 1
a 2
je priradený ľuďom. Tu, ako slovník má kľúč name
, age
, sex
s rôznymi hodnotami. Teraz vytlačíme výsledok ľudí.
Prístup k prvkom vnoreného slovníka
Na prístup k prvku vnoreného slovníka používame indexovaciu ()
syntax v Pythone.
Príklad 2: Prístup k prvkom pomocou syntaxe ()
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'))
Keď spustíme program vyššie, vygeneruje sa:
Ján 27 Muž
Vo vyššie uvedenom programe tlačíme hodnotu kľúča name
pomocou tj. people(1)('name')
Z interného slovníka 1
. Podobne vytlačíme hodnotu age
a sex
jednu po druhej.
Pridajte prvok do vnoreného slovníka
Príklad 3: Ako zmeniť alebo pridať prvky do vnoreného slovníka?
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))
Keď spustíme program vyššie, vygeneruje sa:
('name': 'Luna', 'age': '24', 'sex': 'Female', 'ženatý': 'No')
Vo vyššie uvedenom programe vytvoríme prázdny slovník 3
vo vnútri slovníka people.
Potom pridáme key:value
dvojicu, tj. people(3)('Name') = 'Luna'
Do slovníka 3
. Rovnako tak to pre kľúč age
, sex
a married
jeden po druhom. Keď tlačíme people(3)
, dostaneme key:value
dvojice slovníkov 3
.
Príklad 4: Pridajte do vnoreného slovníka ďalší slovník
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))
Keď spustíme program vyššie, vygeneruje sa:
('name': 'Peter', 'age': '29', 'sex': 'Muž', 'ženatý': 'Yes')
Vo vyššie uvedenom programe priraďujeme slovníkový literál k people(4)
. Doslovný majú kľúče name
, age
a sex
s príslušnými hodnotami. Potom vytlačíme people(4)
, aby sme zistili, že slovník 4
je pridaný do ľudí vnorených do slovníka.
Odstrániť prvky z vnoreného slovníka
V Pythone používame príkaz „del“ na odstránenie prvkov z vnoreného slovníka.
Príklad 5: Ako odstrániť prvky z vnoreného slovníka?
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))
Keď spustíme program vyššie, vygeneruje sa:
('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Male')
Vo vyššie uvedenom programe odstránime key:value
dvojice married
z interného slovníka 3
a 4
. Potom vytlačíme znaky people(3)
a people(4)
na potvrdenie zmien.
Príklad 6: Ako odstrániť slovník z vnoreného slovníka?
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)
Keď spustíme program vyššie, vygeneruje sa:
(1: („meno“: „John“, „vek“: „27“, „pohlavie“: „muž“), 2: („meno“: „Marie“, „vek“: „22“, „pohlavie“ ': 'Žena'))
Vo vyššie uvedenom programe odstránime interný slovník 3
aj 4
použitie del
z vnoreného slovníka people. Potom vytlačíme vnorené slovníky, aby sme potvrdili zmeny.
Iterácia cez vnorený slovník
Pomocou slučiek for môžeme prechádzať jednotlivými prvkami vo vnorenom slovníku.
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.
- Prístup k slovníku je možný pomocou kľúča.