在Python 2.6中,我想做:

f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception

这显然不是语法。是否有可能在lambda中执行一个if,如果是这样,如何做到呢?


当前回答

这段代码应该可以帮助您:

x = lambda age: 'Older' if age > 30 else 'Younger'

print(x(40))

其他回答

给定场景的解决方案是:

f = lambda x : x if x == 2 else print("number is not 2")
f(30)  # number is not 2
f(2)   #2

如果你还想打印,你可以导入未来模块

from __future__ import print_function

f = lambda x: print(x) if x%2 == 0 else False

下面是使用Python 3.x的解决方案!

>>> f = lambda x: print(x) if x == 2 else print("ERROR")
>>> f(23)
ERROR
>>> f(2)
2
>>> 

这段代码应该可以帮助您:

x = lambda age: 'Older' if age > 30 else 'Younger'

print(x(40))

这可能是我迄今为止写过的最差的python语句:

f = lambda x: sys.stdout.write(["2\n",][2*(x==2)-2])

如果x == 2输出,

如果x != 2,你提高。