Где использование lambda обычно оправдано и не ухудшает читаемость?
A
list(map(lambda x: x * 2, items))B
list(filter(lambda x: x > 0, items))C
any(map(lambda x: x > 0, items))D
sorted(users, key=lambda u: u["last_login"])Правильный ответ. Короткая
lambda часто уместна в sorted() (и в min()/max()) для параметра key=, когда функция нужна один раз.Разбор
Использование lambda внутри map()/filter() часто ухудшает читаемость: приходится держать в голове сразу и логику, и вложенные вызовы. Для key= в sorted() короткая lambda обычно воспринимается нормально, потому что она локально объясняет, по какому полю сортировать.
Проверь себя · 1/3разбор после ответа
Нужно проверить, что все значения в
prices строго положительные. Какое выражение вернёт True только если все элементы больше 0?Ещё вопросы по теме «Генераторы списков и встроенные функции»
- Дан список `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`. Нужно получить список `id` только активных пользователей. Какое решение обычно проще читать, чем комбинация `map()` + `filter()` с `lambda`?
- Все вопросы по «Генераторы списков и встроенные функции» →