У вас есть список словарей users с ключами id и is_active. Нужно получить список id только активных пользователей. Какое решение обычно проще читать, чем комбинация map() + filter() с lambda?

A[u["id"] for u in users if u.get("is_active")]
Blist(map(lambda u: u["id"], filter(lambda u: u.get("is_active"), users)))
Cany(u.get("is_active") for u in users)
D{u["id"]: u for u in users}
Правильный ответ. Когда одновременно есть фильтрация и преобразование, list comprehension обычно читается прямее, чем связка filter() и map().

Разбор

List comprehension позволяет выразить намерение в одном шаблоне: «для каждого элемента, если условие истинно, добавь вычисленное значение». Вариант с map()/filter() и lambda часто тяжелее для чтения из-за вложенности и двух анонимных функций.

Проверь себя · 1/3разбор после ответа
Есть список строк raw = ["10", "", "3"]. Нужно получить список целых чисел только из непустых строк. Какой вариант корректен и читаем?
Тренировать Python в Telegram

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