В тази статия ще научите за вложен речник в Python. По-конкретно, ще се научите да създавате вложен речник, да осъществявате достъп до елементи, да ги модифицирате и така нататък с помощта на примери.
В Python речникът е неподредена колекция от елементи. Например:
речник = ('ключ': 'стойност', 'ключ_2': 'стойност_2')
Тук речникът има key:value
двойка, затворена в къдрави скоби ()
.
За да научите повече за речника, моля, посетете Python Dictionary.
Какво е вложен речник в Python?
В Python, вложен речник е речник в речника. Това е колекция от речници в един речник.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Тук nested_dict е вложен речник с речника dictA
и dictB
. Те са два речника, всеки със собствен ключ и стойност.
Създайте вложен речник
Ще създадем речник на хора в речника.
Пример 1: Как да създадем вложен речник
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Когато стартираме над програмата, тя ще изведе:
(1: („име“: „Джон“, „възраст“: „27“, „пол“: „Мъж“), 2: („име“: „Мари“, „възраст“: „22“, „пол ': 'Женски пол'))
В горната програма хората е вложен речник. Вътрешният речник 1
и 2
се възлага на хора. Тук, както речника има ключ name
, age
, sex
с различни стойности. Сега отпечатваме резултата от хората.
Достъп до елементи на вложен речник
За достъп до елемент на вложен речник използваме ()
синтаксис за индексиране в Python.
Пример 2: Достъп до елементите, използвайки синтаксиса ()
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'))
Когато стартираме над програмата, тя ще изведе:
Йоан 27 Мъж
В горната програма отпечатваме стойността на ключ, name
използвайки т.е. people(1)('name')
от вътрешния речник 1
. По същия начин отпечатваме стойността на age
и sex
един по един.
Добавяне на елемент към вложен речник
Пример 3: Как да променяте или добавяте елементи в вложен речник?
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))
Когато стартираме над програмата, тя ще изведе:
(„име“: „Луна“, „възраст“: „24“, „пол“: „Жена“, „женен“: „Не“)
В горната програма ние създаваме празен речник 3
в речника хора.
След това добавяме key:value
двойката, т.е. people(3)('Name') = 'Luna'
в речника 3
. По същия начин, ние правим това за ключов age
, sex
и married
един по един. Когато отпечатваме people(3)
, получаваме key:value
двойки речник 3
.
Пример 4: Добавете друг речник към вложения речник
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))
Когато стартираме над програмата, тя ще изведе:
(„име“: „Петър“, „възраст“: „29“, „пол“: „Мъж“, „женен“: „Да“)
В горната програма ние присвояваме речник литерал на people(4)
. Буквалното имат ключове name
, age
и sex
със съответните стойности. След това отпечатваме people(4)
, за да видим, че речникът 4
е добавен в вложени хора в речника.
Изтрийте елементи от вложен речник
В Python използваме оператора „del“, за да изтрием елементи от вложен речник.
Пример 5: Как да изтрия елементи от вложен речник?
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))
Когато стартираме над програмата, тя ще изведе:
('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Male')
В горната програма изтриваме key:value
двойките от married
от вътрешния речник 3
и 4
. След това отпечатваме people(3)
и, за people(4)
да потвърдим промените.
Пример 6: Как да изтрия речник от вложен речник?
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)
Когато стартираме над програмата, тя ще изведе:
(1: („име“: „Джон“, „възраст“: „27“, „пол“: „Мъж“), 2: („име“: „Мари“, „възраст“: „22“, „пол ': 'Женски пол'))
В горната програма изтриваме както вътрешния речник, така 3
и 4
използването del
от вложените речници хора. След това отпечатваме вложените речници, за да потвърдим промените.
Итерация през вложен речник
Използвайки циклите for, можем да прегледаме всеки елемент в вложен речник.
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.
- Речникът е достъпен с помощта на ключ.