三元运算符Python 单变量赋值python 3.8

Ternary Operator Python single variable assignment python 3.8

我在 Python 遇到了一个奇怪的情况,想得到一些建议。出于某些业务原因,我们需要将此 python 代码模块保持在最短的行数。长话短说 --- 但它要求将此代码模块打印出来并存档在纸上。规则不是我定的——只是需要支付抵押贷款。

我们正在从大型机 Web 服务读取大量数据并对数据应用一些业务规则。例如,“简单的英语”业务规则将是

如果字段 XXXXXX 的非居民状态值是空白或少于两个字符[视为相同],则 XXXXXX 的值必须设置为“NR”。评估必须将该值视为非居民,除非已明确声明居住地。

我想对其中一些规则使用三元运算符,因为它们将有助于压缩多行代码。我没有在 python3 中使用三进制进行此类工作,我遗漏了一些东西或格式错误

 mtvartaxresXXX = "NR" if len(mtvartaxresXXX)< 2

无效。

这个块(经典 python)确实有效

if len(mtvartaxresXXX) < 2:
mtvartaxresXXX = "NR"

在单行 if 语句上执行此评估的最“pythonish”方法是什么。

谢谢

您可以简单地将 if 语句写在一行中:

if len(mtvartaxresXXX) < 2: mtvartaxresXXX = "NR" 

这与三进制的行数相同,不需要明确的 else 值,因此字符更少。