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
代码如下:
(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