Вложенные словари в Python — это концепция, при которой словарь содержит другие словари как свои элементы. Такой подход становится очень полезным при работе с большими объемами данных, требующими группировки или иерархической организации.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
В этом примере nested_dict
— это вложенный словарь, содержащий два других словаря: dict1
и dict2
. Каждый из этих словарей содержит информацию о разных людях.
names = ["John", "Marie"]
ages = [27, 22]
sexes = ["Male", "Female"]
nested_dict = {f"dict{i+1}": {"name": names[i], "age": ages[i], "sex": sexes[i]} for i in range(len(names))}
print(nested_dict)
#{'dict1': {'name': 'John', 'age': 27, 'sex': 'Male'}, 'dict2': {'name': 'Marie', 'age': 22, 'sex': 'Female'}}
В этом примере мы используем списки и генератор словарей для создания вложенного словаря.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
print(nested_dict['dict1']['name'])
#John
Чтобы получить доступ к элементу вложенного словаря, мы обращаемся к нему по ключу верхнего словаря, а затем — по ключу внутреннего словаря.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
nested_dict['dict1']['age'] = 28
print(nested_dict['dict1'])
#{'name': 'John', 'age': 28, 'sex': 'Male'}
Мы можем изменять значения вложенного словаря, обращаясь к ним по ключам, как в предыдущем примере.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
nested_dict['dict1']['job'] = 'Engineer'
print(nested_dict['dict1'])
#{'name': 'John', 'age': '27', 'sex': 'Male', 'job': 'Engineer'}
Добавление нового элемента в вложенный словарь также выполняется по принципу обращения по ключам.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
for i in nested_dict:
print(i)
#dict1
#dict2
Этот код выводит все ключи верхнего словаря. Для получения ключей вложенного словаря нужно добавить еще один цикл.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
for i in nested_dict.values():
print(i)
#{'name': 'John', 'age': '27', 'sex': 'Male'}
#{'name': 'Marie', 'age': '22', 'sex': 'Female'}
Метод values()
позволяет получить все значения верхнего словаря.
nested_dict = {
'dict1': {'name': 'John', 'age': '27', 'sex': 'Male'},
'dict2': {'name': 'Marie', 'age': '22', 'sex': 'Female'}
}
print(nested_dict.get('dict1'))
#{'name': 'John', 'age': '27', 'sex': 'Male'}
Метод get()
обеспечивает безопасный доступ к элементам словаря, возвращая None
, если ключ не найден.
Вложенные словари часто используются при работе с данными в формате JSON, где иерархическая структура данных очень распространена.
import json
json_data = """
{
"employees": {
"employee1": {
"name": "John",
"age": "27",
"sex": "Male"
},
"employee2": {
"name": "Marie",
"age": "22",
"sex": "Female"
}
}
}
"""
data = json.loads(json_data)
print(data['employees']['employee1']['name'])
#John
В этом примере мы загружаем данные JSON в Python как вложенный словарь и получаем доступ к его элементам.
Вложенные словари в Python — это мощный инструмент для работы с иерархическими данными. Они обеспечивают гибкость и удобство при обработке больших объемов данных, представленных в виде структурированных ключей и значений.
Содержание: