Дан список vals = [0, 1, 2]. Что вернёт выражение [x if x % 2 == 0 else -1 for x in vals]?

A[0, 1, 2]
B[-1, -1, -1]
C[0, 2]
D[0, -1, 2]
Правильный ответ. Тернарное выражение внутри comprehension (a if cond else b) помогает заменить if/else без отдельного цикла.

Разбор

Для каждого x из vals проверяется условие x % 2 == 0. Если оно истинно, в результат попадает сам x, иначе — -1. Так можно сделать преобразование с ветвлением в одну строку, сохраняя понятную структуру.

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

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