微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在lambda语句内的for语句内使用if else语句

如何解决在lambda语句内的for语句内使用if else语句

所以我知道这项工作:

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]

我有一个无限循环。

解决方法

如果输入为n * fac(n-1)

3将创建以下列表:-

[[[[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]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。