Lambda if 语句问题

Lambda if statement problems

代码如下:

(lambda a,b,c,d,operator: ((lambda a,b,c:((c) if (a == b)))(a,b,c)) if (operator == "aebc") else (((lambda a,b,c:((c) if (a != b)))(a,b,c)) if (operator == "anebc") else (((lambda a,b,c:((c) if (a <= b)))(a,b,c)) if (operator == "alebc") else (((lambda a,b,c:((c) if (a < b)))(a,b,c)) if (operator == "albc") else (((lambda a,b,c:((c) if (a >= b)))(a,b,c)) if (operator == "agebc") else (((lambda a,b,c:((c) if (a > b)))(a,b,c)) if (operator == "agbc") else (((lambda a,b,c,d:((c) if (a == b) else (d)))(a,b,c,d)) if (operator == "aebced") else (((lambda a,b,c,d:((c) if (a != b) else (d)))(a,b,c,d)) if (operator == "anebced") else (((lambda a,b,c,d:((c) if (a <= b) else (d)))(a,b,c,d)) if (operator == "alebced") else (((lambda a,b,c,d:((c) if (a < b) else (d)))(a,b,c,d)) if (operator == "albced") else (((lambda a,b,c,d:((c) if (a >= b) else (d)))(a,b,c,d)) if (operator == "agebced") else (((lambda a,b,c,d:((c) if (a > b) else (d)))(a,b,c,d)) if (operator == "agbced")))))))))))))()

我正在为“简单”的 if 语句制作单行代码,以用于其他单行代码。但是,我收到多个 invalid syntax 错误。我该如何解决这个问题,或者这段代码是否存在根本性问题?

看起来很重,为什么不用正则函数呢? 乍一看,其中一个问题是三元运算符的错误使用。 你需要使用这个:

c if a == b else some_value

用错了:

c if a == b