如果我定义一个2d的lambda函数数组,如:
N_gsi = [ [lambda gsi:1/4*(1+gsi[1]), lambda gsi:1/4*(1+gsi[0])],
[lambda gsi:-1/4*(1+gsi[1]), lambda gsi:1/4*(1-gsi[0])],
[lambda gsi:-1/4*(1-gsi[1]), lambda gsi:-1/4*(1-gsi[0])],
[lambda gsi:1/4*(1-gsi[1]), lambda gsi:-1/4*(1+gsi[0])]]
然后可以以优雅的方式将每个函数的结果(当然使用相同的参数gsi)获得到相同大小的数组中吗? (没有循环)
类似的东西:
resultArray = N_gsi(myArgumentGsi)
答案 0 :(得分:0)
这个小函数应该对具有任意嵌套深度的集合起作用。我不确定你是否会将递归计为循环。
def apply(fs, arg):
if callable(fs):
return fs(arg)
else:
return list(map(lambda f: apply(f, arg), fs))
然后,您可以为特定用例编写lambda gsi: apply(N_gsi, gsi)
。