Вы можете написать общую функцию, которая заменяет первые два аргумента другой функции:
def swap2(func):
""" Swap the first two arguments of a function """
def wrapped(x, y, *args, **kwargs):
return func(y, x, *args, **kwargs)
return wrapped
f = lambda x,y: x+x**2+y
f_swapped= swap2(f)
assert f(3, 4) == f_swapped(4, 3)
Это работает, потому что функции - это просто обычные объекты Python, которые могут передаваться как целые числа, строки и т. Д..
Кстати, почти никогда нет причин писать something = lambda ...
.Вместо этого используйте def something(...)
.