Перебор словаря и вложенные структуры
Уроки курсаПеребор словаря и вложенные структуры
В прошлом уроке мы научились создавать словарь, читать значения по ключу, изменять и удалять пары. Теперь задача другая: пройтись по всему словарю в цикле. 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()).
