В этой статье вы узнаете о вложенном словаре в Python. В частности, вы научитесь создавать вложенный словарь, получать доступ к элементам, изменять их и так далее с помощью примеров.
В Python словарь - это неупорядоченный набор элементов. Например:
словарь = ('ключ': 'значение', 'ключ_2': 'значение_2')
Здесь key:value
пара словаря заключена в фигурные скобки ()
.
Чтобы узнать больше о словаре, посетите Python Dictionary.
Что такое вложенный словарь в Python?
В Python вложенный словарь - это словарь внутри словаря. Это собрание словарей в одном словаре.
nested_dict = ('dictA': ('ключ_1': 'значение_1'), 'dictB': ('ключ_2': 'значение_2'))
Здесь nested_dict - это вложенный словарь со словарем dictA
и dictB
. Это два словаря, каждый из которых имеет собственный ключ и значение.
Создать вложенный словарь
Мы собираемся создать словарь людей в словаре.
Пример 1: Как создать вложенный словарь
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Когда мы запустим вышеуказанную программу, она выведет:
(1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '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
внутри словаря people.
Затем мы добавляем 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
добавлен во вложенный словарь people.
Удалить элементы из вложенного словаря
В 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))
Когда мы запустим вышеуказанную программу, она выведет:
('имя': 'Луна', 'возраст': '24', 'пол': 'Женский') ('имя': 'Питер', 'возраст': '29', 'пол': 'Мужской')
В приведенной выше программе мы удаляем 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: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'пол ': 'Женский'))
В приведенной выше программе мы удаляем как внутренний словарь, так 3
и 4
using del
из вложенного словаря людей. Затем мы печатаем вложенный словарь people для подтверждения изменений.
Итерация по вложенному словарю
Используя циклы 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.
- Доступ к словарю осуществляется с помощью ключа.