Есть словарь выручки по кампании rev = {"A": 100, "B": 250, "C": 180}. Нужно получить название кампании с максимальной выручкой. Что правильно?

Amax(rev.keys(), key=str)
Bmax(list(rev.values()))
Cmax(rev.items(), key=str)
Dmax(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]?
Тренировать Python в Telegram

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