Python для новичковКоллекцииПеребор словаря и вложенные структуры

Перебор словаря и вложенные структуры

Уроки курсаПеребор словаря и вложенные структуры

В прошлом уроке мы научились создавать словарь, читать значения по ключу, изменять и удалять пары. Теперь задача другая: пройтись по всему словарю в цикле. Python даёт для этого три метода — keys(), values() и items(). Начнём с первых двух.

Перебор ключей и значений: keys() и values()

Когда нужно обойти словарь целиком, первый вопрос — что именно нужно на каждом шаге: только ключи, только значения или и то, и другое сразу.

Метод keys() возвращает все ключи словаря. Цикл по ним выглядит так:

grades = {'Анна': 5, 'Боб': 4, 'Вера': 3}

for name in grades.keys():
    print(name)

Вывод:

Анна
Боб
Вера

Есть нюанс: если написать просто for name in grades: без вызова .keys(), результат будет тот же — Python по умолчанию итерируется по ключам. Но явный .keys() делает код более читаемым, особенно когда важно подчеркнуть намерение.

Метод values() работает симметрично, но отдаёт значения:

for grade in grades.values():
    print(grade)

Вывод:

5
4
3

Главное ограничение values(): внутри цикла нет доступа к ключу. Если потребуется знать, чья это оценка — этот метод не поможет. Используйте его только когда ключ действительно не нужен: например, чтобы посчитать сумму всех оценок или найти максимум.

print(sum(grades.values()))   # 12
print(max(grades.values()))   # 5

Оба метода возвращают специальные объекты-представления (dict_keys и dict_values), а не обычные списки. Для большинства задач это не важно — они прекрасно работают в for и с функциями вроде sum(). Но если понадобится индексация или срез, придётся обернуть в list(): list(grades.keys()).