Глава 11 · Очень много информации!

Вложенные структуры

Настоящие данные редко бывают плоскими: списки словарей и словари внутри словарей — норма, а не исключение.

Вложенный словарь

vlozhennyj_slovar.py
student = {
    "name": "Anna",
    "scores": {"math": 95, "python": 100},
}
print(student["scores"]["python"])   # 100
student
name → "Anna"
scores
math → 95
python → 100
student['scores']['python'] — сначала внешний ключ, потом внутренний

Список словарей — самый частый реальный паттерн

spisok_slovarej.py
students = [
    {"name": "Anna", "score": 95},
    {"name": "Bob", "score": 82},
]

for student in students:
    print(student["name"], student["score"])
students (список)
[0]
name → "Anna"
score → 95
[1]
name → "Bob"
score → 82
Список словарей — так часто выглядят настоящие данные (записи из базы, ответ API)
Список словарей — это уже почти JSON
Ровно так организованы данные, приходящие от многих веб-сервисов (JSON) — подробно про JSON поговорим в одной из следующих глав, но структура «список записей, у каждой записи свои поля» уже полностью знакома.

Словарь списков — обратный вариант

slovar_spiskov.py
classroom = {
    "students": ["Anna", "Bob"],
    "scores": [95, 82],
}

Оба представления валидны — какое выбрать, зависит от того, как с данными будут работать дальше: список словарей удобнее, если часто нужна ОДНА запись целиком (найти Bob'а и все его данные); словарь списков — если чаще нужна ОДНА колонка целиком (все имена или все оценки).

Практика: вложенные словари и список словарей
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →