Python 具有条件和布尔的数学运算
我正在对一个python脚本进行反向工程,该脚本正在将XML文件解析为不同的数据文件类型。在这样做的过程中,我遇到了一行非常优雅的代码:Python 具有条件和布尔的数学运算,python,python-2.7,conditional,boolean-expression,Python,Python 2.7,Conditional,Boolean Expression,我正在对一个python脚本进行反向工程,该脚本正在将XML文件解析为不同的数据文件类型。在这样做的过程中,我遇到了一行非常优雅的代码: nyear += (1900, 2000)[nyear < 83] 这只是元组索引。在大多数情况下,更好的成语是 2000 if nyear < 83 else 1900 2000如果nyear
nyear += (1900, 2000)[nyear < 83]
这只是元组索引。在大多数情况下,更好的成语是
2000 if nyear < 83 else 1900
2000如果nyear<83否则1900
nyear<83
返回一个布尔值(True
或False
),如果False
则将其转换为0,如果True
则将其转换为1。因此,您正在将元组(1900,2000)
索引为0或1,这取决于是否满足条件。条件索引就是我所说的。
2000 if nyear < 83 else 1900