Есть словарь code_to_name = {"RU": "Russia", "FR": "France"}. Нужно получить обратное отображение name_to_code (предполагаем, что значения уникальны). Какой вариант корректен?

A{v: k for k, v in code_to_name.items()}
B{k: v for k, v in code_to_name.items()}
Cdict(code_to_name.items())
Dlist(code_to_name.items())
Правильный ответ. Через .items() удобно взять пары ключ-значение и поменять их местами в dict comprehension.

Разбор

В выражении {v: k for k, v in code_to_name.items()} мы явно меняем местами ключ и значение: новый ключ — это старое значение v, а новое значение — старый ключ k. Важно, чтобы значения были уникальны, иначе при инвертировании ключи начнут перезаписываться.

Проверь себя · 1/3разбор после ответа
Есть список словарей users, где у некоторых пользователей отсутствует email (например, u.get("email") возвращает None). Нужно получить список email в нижнем регистре, пропуская отсутствующие. Какой вариант обычно наиболее читаемый?
Тренировать Python в Telegram

Ещё вопросы по теме «Генераторы списков и встроенные функции»