Есть ли альтернатива лямбда-функциям в 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 могут быть более лаконичными и короткими, предоставляя тот же функционал.