V tomto článku se dozvíte o vnořeném slovníku v Pythonu. Přesněji se naučíte vytvářet vnořený slovník, přistupovat k prvkům, upravovat je atd. Pomocí příkladů.
V Pythonu je slovník neuspořádanou kolekcí položek. Například:
dictionary = ('key': 'value', 'key_2': 'value_2')
Zde má slovník key:value
dvojici uzavřenou ve složených závorkách ()
.
Další informace o slovníku najdete ve slovníku Python Dictionary.
Co je vnořený slovník v Pythonu?
V Pythonu je vnořeným slovníkem slovník uvnitř slovníku. Je to sbírka slovníků do jednoho slovníku.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Zde je nested_dict vnořený slovník se slovníkem dictA
a dictB
. Jsou to dva slovníky, z nichž každý má svůj vlastní klíč a hodnotu.
Vytvořte vnořený slovník
Chystáme se vytvořit slovník lidí ve slovníku.
Příklad 1: Jak vytvořit vnořený slovník
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Když spustíme výše uvedený program, bude mít výstup:
(1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Ženský'))
Ve výše uvedeném programu jsou lidé vnořeným slovníkem. Interní slovník 1
a 2
je přiřazen lidem. Zde, jak slovník má klíč name
, age
, sex
s různými hodnotami. Nyní vytiskneme výsledek lidí.
Přístup k prvkům vnořeného slovníku
Pro přístup k prvku vnořeného slovníku používáme indexovací ()
syntaxi v Pythonu.
Příklad 2: Přístup k prvkům pomocí 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'))
Když spustíme výše uvedený program, bude mít výstup:
Jan 27 Muž
Ve výše uvedeném programu vytiskneme hodnotu klíče name
pomocí tj. people(1)('name')
Z interního slovníku 1
. Podobně tiskneme hodnotu age
a sex
jeden po druhém.
Přidat prvek do vnořeného slovníku
Příklad 3: Jak změnit nebo přidat prvky ve vnořeném slovníku?
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))
Když spustíme výše uvedený program, bude mít výstup:
('name': 'Luna', 'age': '24', 'sex': 'Female', 'ženatý': 'No')
Ve výše uvedeném programu vytvoříme 3
uvnitř slovníku people prázdný slovník .
Potom přidáme key:value
dvojici, tj. people(3)('Name') = 'Luna'
Do slovníku 3
. Stejně tak to pro klíč age
, sex
a married
jeden po druhém. Když vytiskneme people(3)
, získáme key:value
dvojice slovníků 3
.
Příklad 4: Přidejte do vnořeného slovníku další 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))
Když spustíme výše uvedený program, bude mít výstup:
('name': 'Peter', 'age': '29', 'sex': 'Male', 'ženatý': 'Yes')
Ve výše uvedeném programu přiřadíme doslovný slovník people(4)
. Doslovný mají klíče name
, age
a sex
s příslušnými hodnotami. Poté vytiskneme people(4)
, abychom viděli, že slovník 4
je přidán do vnořených slovníků.
Odstranit prvky z vnořeného slovníku
V Pythonu používáme příkaz „del“ k odstranění prvků z vnořeného slovníku.
Příklad 5: Jak odstranit prvky ze vnořeného slovníku?
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))
Když spustíme výše uvedený program, bude mít výstup:
('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Male')
Ve výše uvedeném programu odstraníme key:value
páry married
z interního slovníku 3
a 4
. Poté vytiskneme people(3)
a people(4)
pro potvrzení změn.
Příklad 6: Jak odstranit slovník ze vnořeného slovníku?
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)
Když spustíme výše uvedený program, bude mít výstup:
(1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Ženský'))
Ve výše uvedeném programu odstraníme jak interní slovník, 3
tak 4
použití del
z vnořeného slovníku people. Poté vytiskneme vnořené lidi slovníku, abychom potvrdili změny.
Iterace vnořeným slovníkem
Pomocí smyček for můžeme procházet jednotlivými prvky ve vnořeném 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.
- Slovník je přístupný pomocí klíče.