Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
216

Сравнение List comprehension и lambda + filter в Python

Существует несколько способов фильтрации элементов в списке в Python, и часто возникает вопрос о том, какой из них является наиболее предпочтительным

Существует несколько способов фильтрации элементов в списке в Python, и часто возникает вопрос о том, какой из них является наиболее предпочтительным с точки зрения производительности и читаемости кода.

Возьмем простой пример. Есть список чисел, и необходимо отфильтровать только те числа, которые являются четными.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Один из способов это сделать — использовать list comprehension:

even_numbers = [n for n in numbers if n % 2 == 0]

Альтернативный способ — использовать комбинацию функции filter и лямбда-функции:

even_numbers = filter(lambda n: n % 2 == 0, numbers)

Оба варианта дают одинаковый результат, но есть несколько аспектов, которые стоит учесть при выборе между ними.

Читаемость кода

В целом, list comprehension обычно считается более читабельным, так как он более «pythonic», то есть соответствует общепринятому стилю написания кода на Python. Использование лямбда-функций может затруднить чтение кода, особенно для новичков.

Производительность

В плане производительности оба варианта обычно работают примерно одинаково быстро, но в некоторых случаях list comprehension может быть немного быстрее. Однако разница, как правило, настолько мала, что она не будет заметна, если не работать с очень большими списками.

Курсы по программированию
Помогаем получить новую профессию с гарантией трудоустройства!
Подробнее
Курсы по программированию

Вывод

В целом, выбор между list comprehension и lambda + filter в большей степени зависит от персональных предпочтений и стиля написания кода. Но если учитывать общепринятые рекомендации по написанию кода на Python, list comprehension может быть более предпочтительным вариантом.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий