Python lambda with if but without else
问题 I was writing some lambda functions and couldn't figure this out. Is there a way to have something like lambda x: x if (x<3) in python? As lambda a,b: a if (a > b) else b works ok. So far lambda x: x < 3 and x or None seems to be the closest i have found. 回答1: A lambda, like any function, must have a return value. lambda x: x if (x<3) does not work because it does not specify what to return if not x<3 . By default functions return None , so you could do lambda x: x if (x<3) else None But