Get Mystery Box with random crypto!

Есть ли альтернатива лямбда-функциям в Python? Представьте ва | Python Ментор 🔊

Есть ли альтернатива лямбда-функциям в Python?

Представьте вам надо каждый элемент списка привести к его абсолютному значению и т.о. сформировать новый список. Какой вариант решения приходит первым на ум? Наверное через лямбда функцию, т.е. что-то в таком духе:

a = [-1,-2,-3,4]
b = list(map(lambda x: abs(x), a))

# результат
[1,2,3,4]

Но в Python есть такой модуль как operator, некоторые методы из которого могут заменять лямбда-функции и немного укоротить код:

import operator

a = [-1,-2,-3,4]
b = list(map(operator.abs, a))

# результат
[1,2,3,4]


Т.е. вместо lambda x: abs(x) мы используем здесь operator.abs.

В чем может быть преимущество использования методов из модуля operator в функциональных выражениях (например map(), reduce() и прочих) по сравнению с лямбда-функциями? Например в том, что иногда лямбда выражения становятся длинными и плохочитаемыми, а вот методы из модуля operator могут быть более лаконичными и короткими, предоставляя тот же функционал.