在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,如果是这样,如何做到呢?
在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,如果是这样,如何做到呢?
当前回答
下面的示例代码适用于我。不确定它是否与这个问题直接相关,但希望它在其他情况下有所帮助。
a = ''.join(map(lambda x: str(x*2) if x%2==0 else "", range(10)))
其他回答
如果你还想打印,你可以导入未来模块
from __future__ import print_function
f = lambda x: print(x) if x%2 == 0 else False
这段代码应该可以帮助您:
x = lambda age: 'Older' if age > 30 else 'Younger'
print(x(40))
希望这能有所帮助
您可以通过以下方式解决此问题
f = lambda x: x==2
if f(3):
print("do logic")
else:
print("another logic")
你真正需要的是
def fun():
raise Exception()
f = lambda x:print x if x==2 else fun()
现在按需要的方式调用函数
f(2)
f(3)
可能值得考虑np.where