所以我知道这项工作:
fac = lambda x: [element for element in x]
这也可行:
fac = lambda x: x*fac(x-1) if x!=0 else 1
但是为什么不起作用:
fac = lambda *x : [ n * fac(n-1) if n!=0 else 1 for n in x]
我有一个无限循环。
答案 0 :(得分:0)
n * fac(n-1)
, 3
将创建以下列表:-
[[[[1], [1]], [[1], [1]], [[1], [1]]]]
您需要从列表中获取第一个元素,然后将其乘以n
:-
fac = lambda *x : [ n * fac(n-1)[0] if n!=0 else 1 for n in x]
print(fac(3))
输出-
[6]