Как ускорить for-циклы в Python в 2-10 раз

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonmapоптимизация

ℹ️ В Python часто приходится перебирать списки, кортежи и другие коллекции в for-цикле. Но есть способ сделать это в разы быстрее, не меняя логику кода!

🔥 Используем map() вместо for

➡️ Обычный for-цикл:

numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
    squares.append(num ** 2)

⚡️ Быстрый вариант:

numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))

Почему это работает быстрее?

  • - map() работает на уровне C, минуя интерпретируемый Python-код.
  • - он не создаёт промежуточные переменные и не вызывает лишние операции.
  • - в многопоточных задачах map() можно комбинировать с multiprocessing.Pool для ещё большего ускорения.

✳️ Если данные очень большие, то используйте map() без list() – он вернёт ленивый итератор и сэкономит память.

tags: #полезно #разработка #python

🧭 @recura_tech

Скриншот тёмного редактора кода с примером на Python: сравнение обычного for-цикла и варианта list(map(...)) с подсветкой.
Пример кода: сравнение обычного for и list(map(...)) для вычисления квадратов чисел.

Читайте так же