📖 Теория

⚡ Кратко: теория

fromkeys(), get(), setdefault(), keys(), values() и items() повторяются как базовый набор методов словаря.

View objects отражают изменения словаря, а list(view) создаёт снимок.

Вложенные структуры требуют цепочки ключей и индексов.

copy() копирует только внешний словарь, deepcopy() копирует вложенные объекты.

Dict comprehension подходит для преобразования и фильтрации словаря.

Функции повторяются через def, pass, return, *args/**kwargs и LEGB.

Практическая задача со скобками решается стеком и словарём соответствий.

global работает, но параметры и return обычно дают более предсказуемый код.

Топ-3 ошибки: менять словарь во время итерации по items(); ожидать независимых списков от dict.fromkeys(keys, []); путать локальную переменную и global.

Методы словарей

fromkeys() создаёт словарь по набору ключей, get() безопасно читает значение, setdefault() добавляет ключ при отсутствии.

keys(), values() и items() возвращают динамические представления.

data = {"name": "Alice", "age": 30}
keys = data.keys()
data["city"] = "New York"
print(keys)
print(data.get("country", "Unknown"))

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

Словарь может хранить списки и другие словари. Для доступа нужно последовательно пройти все уровни.

Для обхода вложенных словарей обычно нужны вложенные циклы.

school = {"class1": {"students": ["Alice", "Bob"], "teacher": "Mrs. Smith"}}
print(school["class1"]["students"][0])

Копирование

copy() создаёт новый внешний словарь, но вложенные списки остаются общими.

copy.deepcopy() создаёт независимые вложенные структуры.

import copy

original = {"scores": [90, 85]}
shallow = original.copy()
deep = copy.deepcopy(original)
original["scores"].append(80)
print(shallow)
print(deep)

Функции и LEGB

Функция получает входные данные через параметры и возвращает результат через return.

LEGB объясняет, почему локальная переменная перекрывает глобальную.

x = 10

def show_value():
    x = 5
    return x

print(show_value())
print(x)
Проверить по документации: современные детали поведения встроенных функций, стандартной библиотеки и версии Python сверяйте с официальной документацией.