Лайфхак недели снова в деле 🫣
Сегодня - тот случай, когда одна строчка Python выглядит немного подозрительно: вроде бы sum() должна складывать числа, а мы внезапно передаём ей какое-то условие 🤨
Карточку советую сохранить, потому что такой приём особенно удобен в задачах ЕГЭ, где нужно посчитать количество объектов с определённым свойством. А теперь разберёмся, почему он вообще работает.
В Python логические значения можно воспринимать как числа:
True → 1
False → 0
Когда мы пишем:
x % 2 == 0
для каждого x Python проверяет: число чётное или нет.
Для списка из карточки:
a = [4, 7, 2, 9, 6, 3]
получится примерно такая последовательность:
True, False, True, False, True, False
А для sum() это фактически:
1 + 0 + 1 + 0 + 1 + 0 = 3
Вот откуда берётся ответ!
Причём условие можно поставить практически любое. Например, посчитать числа больше 5:
k = sum(x > 5 for x in a)
или числа, которые делятся на 3:
k = sum(x % 3 == 0 for x in a)
Так что здесь лучше не заучивать конкретную строчку с чётными числами. Запомните сам принцип:
условие → True/False → 1/0 → sum() считает количество выполненных условий.
➡️Ещё один маленький приём в копилку подготовки к ЕГЭ
Сохраняйте - в нужной задаче он может очень приятно сократить решение 💞
Post #3247
229

- ❤ 2
- 🔥 2
- 👨💻 2