Нужно проверить, что все значения в списке prices строго положительные. Какое выражение вернёт True только если каждый элемент больше нуля?
A
any(p > 0 for p in prices)B
[p > 0 for p in prices]C
sum(p > 0 for p in prices)D
all(p > 0 for p in prices)Правильный ответ.
all(...) возвращает True только когда каждый элемент удовлетворяет условию.Разбор
all(p > 0 for p in prices) обходит все цены и возвращает True, лишь когда условие истинно для каждой. any вернёт True уже при первом положительном элементе — это «хотя бы один», а не «все». Списочное включение [p > 0 for p in prices] отдаёт список булевых значений, а не один общий флаг. sum(p > 0 for p in prices) посчитает количество положительных элементов, что не отвечает на вопрос «строго все».
Проверь себя · 1/3разбор после ответа
Есть список сумм
amounts = [0, 0, 10]. Что вернёт выражение any(a > 0 for a in amounts)?Ещё вопросы по теме «Генераторы списков и встроенные функции»
- Дан список `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` с анонимными функциями?
- Все вопросы по «Генераторы списков и встроенные функции» →