在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

您还可以使用逻辑运算符来拥有类似条件的东西

func = lambda element: (expression and DoSomething) or DoSomethingIfExpressionIsFalse

你可以在这里看到更多关于逻辑运算符的信息

注意,你可以使用其他几个…你的lambda定义中的If语句:

f = lambda x: 1 if x>0 else 0 if x ==0 else -1

希望这能有所帮助

您可以通过以下方式解决此问题

f = lambda x:  x==2   

if f(3):
  print("do logic")
else:
  print("another logic")

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

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

print(x(40))