如何解决在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 举报,一经查实,本站将立刻删除。