Выражение sum(number % 2 == 0 for number in [12, 1, 55, 7, 8]) вернёт 2. Чётные элементы здесь — 12 и 8; суммируются булевы результаты проверок.
Определение количества чётных элементов в массиве
Выражение sum(number % 2 == 0 for number in [12, 1, 55, 7, 8]) вернёт 2. Чётные элементы здесь — 12 и 8; суммируются булевы результаты проверок.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Составьте однострочное выражение, которое вычислит, сколько чисел с чётным значением находятся в массиве [12, 1, 55, 7, 8].
Ответ
Выражение sum(number % 2 == 0 for number in [12, 1, 55, 7, 8]) вернёт 2. Чётные элементы здесь — 12 и 8; суммируются булевы результаты проверок.
Однострочное решение:
count = sum(number % 2 == 0 for number in [12, 1, 55, 7, 8])
True участвует в сумме как 1, False — как 0. Генератор не создаёт промежуточный список, поэтому дополнительная память постоянна, время линейно. Считаются значения элементов, а не их индексы. Ноль и отрицательные чётные числа тоже прошли бы проверку делимости на 2.