Нет, в общем случае петля for
уровня Python неизбежна.
Но вы можете спрятать его за map
+ lambda
:
res1 = list(map(lambda x: x[0](x[1]), zip((x2, tx, x3), x)))
res2 = np.array([x2(1), tx(2), x3(3)])
assert np.array_equal(res1, res2)
Конечно, в этой ситуации рекомендуется составить список:
res = [func(var) for func, var in zip((x2, tx, x3), x)]