Определите test
как новый lambda
:
A = [([0] * 2) for row in range(2)]
A[0][0] = lambda x: x
A[0][1] = lambda x: x + 1
A[1][0] = lambda x: x + 2
A[1][1] = lambda x: x + 3
test = lambda x: A[0][0](x) + A[0][1](x)
print(test(1))
# 3
Если у вас более двух элементов подряд, это может быть утомительно, поэтому используйте functools.reduce
:
from functools import reduce
test_red = reduce(lambda x, y: lambda z: x(z) + y(z), A[0])
print(test_red(1))
# 3
Итак, для генерации сокращенных функций для каждой строки:
from functools import reduce
test_all = [reduce(lambda x, y: lambda z: x(z) + y(z), a) for a in A]
print(test_all[0](1))
# 3
print(test_all[1](1))
# 7