首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在python的lambda中执行"if“?

有没有办法在python的lambda中执行"if“?
EN

Stack Overflow用户
提问于 2009-10-19 00:28:04
回答 15查看 670.5K关注 0票数 441

Python2.6中,我想做的是:

代码语言:javascript
复制
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception

这显然不是语法。可以在lambda中执行if吗?如果可以,如何执行?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2009-10-18 16:48:44

您要查找的语法:

代码语言:javascript
复制
lambda x: True if x % 2 == 0 else False

但是您不能在lambda中使用printraise

票数 820
EN

Stack Overflow用户

发布于 2009-10-18 16:33:17

为什么不直接定义一个函数呢?

代码语言:javascript
复制
def f(x):
    if x == 2:
        print(x)
    else:
        raise ValueError

在这种情况下,确实没有理由使用lambda。

票数 44
EN

Stack Overflow用户

发布于 2015-10-21 13:43:22

可能是我到目前为止写过的最糟糕的python代码:

代码语言:javascript
复制
f = lambda x: sys.stdout.write(["2\n",][2*(x==2)-2])

如果打印x == 2,

如果x != 2,你提高。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1585322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档