map, filter, reduce ⚡Привет, друзья! Сегодня расскажу о том, как можно ускорить выполнение кода, заменяя обычные циклы на встроенные функции
map(), filter() и reduce(). Эти инструменты позволяют писать более компактный, читаемый и быстрый код.✅
map()Функция
map() применяется к каждому элементу последовательности и возвращает новый итератор.❌ Обычный способ:
numbers = [1, 2, 3, 4, 5]
squared = []
for num in numbers:
squared.append(num ** 2)
✅ Быстрее с
map():
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
За счёт того, что
map() использует C-оптимизированную логику, код выполняется быстрее.✅
filter()Фильтрует элементы последовательности по заданному условию.
❌ Медленный вариант:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = []
for num in numbers:
if num % 2 == 0:
evens.append(num)
✅ Быстрее с
filter():
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = list(filter(lambda x: x % 2 == 0, numbers))
Такой код читается легче и работает быстрее.
✅
reduce()Позволяет выполнять кумулятивные операции (например, суммирование, умножение).
❌ Классический способ:
numbers = [1, 2, 3, 4, 5]
product = 1
for num in numbers:
product *= num
✅ Быстрее с
reduce():
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
Этот метод полезен, если нужно свести список к одному значению.
💡 Важно:
reduce() чаще заменяют sum() или math.prod(), но для сложных операций он остаётся полезным.Такие функции помогают писать код, который не только быстрее работает, но и легче читается.
📲 Мы в MAX
👉@BookPython