您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Lambda函数可以在Python中递归调用吗?

Lambda函数可以在Python中递归调用吗?

我能想到的唯一方法就是为函数命名:

fact = lambda x: 1 if x == 0 else x * fact(x-1)

或者,对于早期版本的python:

fact = lambda x: x == 0 and 1 or x * fact(x-1)

:使用其他答案中的想法,我能够将阶乘函数嵌入单个未命名的lambda中:

>>> map(lambda n: (lambda f, *a: f(f, *a))(lambda rec, n: 1 if n == 0 else n*rec(rec, n-1), n), range(10))
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]

因此有可能,但并非真正推荐!

python 2022/1/1 18:33:33 有215人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶