Есть словарь выручки по кампании rev = {"A": 100, "B": 250, "C": 180}. Нужно получить название кампании с максимальной выручкой. Что правильно?
A
max(rev.keys(), key=str)B
max(list(rev.values()))C
max(rev.items(), key=str)D
max(rev, key=rev.get)Правильный ответ.
max(rev, key=rev.get) сравнивает ключи словаря по значениям, которые возвращает rev.get, и возвращает ключ с максимумом.Разбор
При итерации по словарю Python отдаёт его ключи, поэтому max(rev, key=rev.get) сравнивает имена кампаний по значению выручки и возвращает «лучшее» имя — что и нужно. max(rev.keys(), key=str) сравнивает ключи как строки и игнорирует выручку. max(list(rev.values())) вернёт максимальное число, а не имя кампании. max(rev.items(), key=str) сравнивает кортежи (ключ, значение) лексикографически и тоже не учитывает выручку как число.
Проверь себя · 1/3разбор после ответа
Дан список батчей
batches = [[101, 102], [], [103]]. Что вернёт выражение [x for batch in batches for x in batch]?Ещё вопросы по теме «Генераторы списков и встроенные функции»
- Дан список `xs = [1, -2, 3, 0]`. Что вернёт выражение `[x * 2 for x in xs if x > 0]`?
- Есть список словарей `users`, где у некоторых пользователей отсутствует email (например, `u.get("email")` возвращает `None`). Нужно получить список email в нижнем регистре, пропуская отсутствующие. Какой вариант обычно наиболее читаемый?
- Дан список батчей `batches = [[101, 102], [], [103]]`. Что вернёт выражение `[x for batch in batches for x in batch]`?
- Дан список `vals = [0, 1, 2]`. Что вернёт выражение `[x if x % 2 == 0 else -1 for x in vals]`?
- У вас есть список словарей `users` с ключами `id` и `is_active`. Нужно получить список идентификаторов только активных пользователей. Какое решение обычно проще читать, чем комбинация `map` и `filter` с анонимными функциями?
- Все вопросы по «Генераторы списков и встроенные функции» →