Ebben a cikkben megismerheti a Python beágyazott szótárát. Pontosabban meg fogja tanulni a beágyazott szótár létrehozását, az elemek elérését, módosítását és így tovább a példák segítségével.
A Pythonban a szótár rendezetlen elemgyűjtemény. Például:
szótár = ('kulcs': 'érték', 'kulcs_2': 'érték_2')
Itt a szótárnak van egy key:value
párja göndör zárójelben ()
.
Ha többet szeretne megtudni a szótárról, keresse fel a Python szótárt.
Mi a beágyazott szótár a Pythonban?
A Pythonban a beágyazott szótár egy szótárban található szótár. Szótárak gyűjteménye egyetlen szótárban.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Itt a beágyazott_diktum beágyazott szótár a szótárral dictA
és dictB
. Két szótár, mindegyiknek saját kulcsa és értéke van.
Hozzon létre beágyazott szótárt
Létrehozzuk az emberek szótárát egy szótárban.
1. példa: Beágyazott szótár létrehozása
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Amikor a program felett futunk, az a következőket adja ki:
(1: ('név': 'John', 'kor': '27', 'nem': 'férfi'), 2: ('név': 'Marie', 'kor': '22', 'nem ": 'Nő'))
A fenti programban az emberek beágyazott szótárak. A belső szótár 1
és 2
az emberekhez van rendelve. Itt mind a szótárban van kulcs name
, age
, sex
különböző értékekkel. Most kinyomtatjuk az emberek eredményét.
A beágyazott szótár hozzáférési elemei
A beágyazott szótár elemének eléréséhez indexelési ()
szintaxist használunk a Pythonban.
2. példa: Az () szintaxissal érheti el az elemeket
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'))
Amikor a program felett futunk, az a következőket adja ki:
János 27 Férfi
A fenti program, kiírjuk a kulcs értékének name
felhasználásával azaz people(1)('name')
belső szótárban 1
. Hasonlóképpen, kiírja age
, és sex
egyesével.
Elem hozzáadása egy beágyazott szótárhoz
3. példa: Hogyan lehet elemeket megváltoztatni vagy hozzáadni egy beágyazott szótárhoz?
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))
Amikor a program felett futunk, az a következőket adja ki:
(„név”: „Luna”, „életkor”: „24”, „nem”: „nő”, „házas”: „nem”)
A fenti programban létrehozunk egy üres szótárt 3
a szótár emberein belül.
Ezután hozzáadjuk a szót, key:value
azaz people(3)('Name') = 'Luna'
a szótár belsejében 3
. Hasonlóképpen, ezt a kulcsért tesszük age
, sex
és married
egyesével. Ha kiírjuk a people(3)
, megkapjuk key:value
pár szótárban 3
.
4. példa: Adjon hozzá egy másik szótárt a beágyazott szótárhoz
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))
Amikor a program felett futunk, az a következőket adja ki:
(„név”: „Péter”, „életkor”: „29”, „nem”: „Férfi”, „házas”: „Igen”)
A fenti programban szótár literált rendelünk hozzá people(4)
. A literálnak kulcsai vannak name
, age
és sex
a megfelelő értékekkel. Ezután kinyomtatjuk a people(4)
, hogy meggyőződjünk arról, hogy a szótár 4
beágyazott szótárban van.
Elemek törlése a beágyazott szótárból
A Pythonban a „del“ utasítással töröljük az elemeket a beágyazott szótárból.
5. példa: Hogyan lehet elemeket törölni egy beágyazott szótárból?
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))
Amikor a program felett futunk, az a következőket adja ki:
(„név”: „Luna”, „életkor”: „24”, „nem”: „nő”) („név”: „Péter”, „életkor”: „29”, „nem”: „férfi”)
A fenti programban töröljük a key:value
párokat married
a belső szótárból 3
és 4
. Ezután kinyomtatjuk a people(3)
és people(4)
a módosítások megerősítését.
6. példa: Hogyan lehet törölni a szótárt beágyazott szótárból?
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)
Amikor a program felett futunk, az a következőket adja ki:
(1: ('név': 'John', 'kor': '27', 'nem': 'férfi'), 2: ('név': 'Marie', 'kor': '22', 'nem ": 'Nő'))
A fenti program, töröljük mind a belső szótárban 3
, és 4
használja del
a beágyazott szótárban emberek. Ezután kinyomtatjuk a beágyazott szótárakat a változtatások megerősítéséhez.
Iterálás egy beágyazott szótár segítségével
A for ciklusok segítségével iterálhatunk egy beágyazott szótár egyes elemein.
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.
- A szótárhoz a billentyűvel lehet hozzáférni.