Python 中的三元条件运算符
本教程将定义在 Python 中使用三元运算符的不同方法。与其他编程语言相比,在 Python 中使用三元运算符的方式有所不同。根据与 Python 版本的兼容性,可以使用多种方式使用三元运算符。本教程将提供示例代码,以说明如何在不同的 Python 版本中使用三元运算符。
在 Python 2.5 及更高版本中使用三元运算符
在 Python 2.5 中添加了三元条件运算符。三元运算符定义为采用三个操作数的运算符。在这种方法中,首先评估给定的条件,然后根据布尔运算符评估其中一个值并将其发送回去。它首先接受表达式,然后再次出现条件,其后是表达式的 else
部分。
Python 中三元运算符的语法如下。
value_if if condition else value_else
当三元运算符首先评估 condition
时,它允许短路,并且仅对两个表达式之一进行评估。如果 condition
为真,则对第一个表达式 value_if
求值,否则对第二个表达式 value_else
求值。
下面的示例代码演示了如何在 Python 中使用三元运算符。
a = 2
b = 0
1 if a > b else 0
输出:
1
可以将三元条件运算符的输出分配给变量,如下面的示例代码所示。
a = 2
b = 0
temp = a if a > b else b
print(temp)
输出:
2
在 Python 中使用元组的三元运算符
可以通过使用元组来使用 Python 中的三元运算符。它使用要求值的表达式和布尔条件语句。要返回的表达式取决于布尔条件。如果条件为 true,则返回第一个值,如果表达式为 false,则返回第二个值。但是,无论如何,此方法将评估所有内容,而不是仅评估获胜的表达式。
下面给出了一个示例代码,以说明如何在使用元组的 Python 中使用该三元运算符。
a, b = 12, 43
temp = (a * 2, b / 2)[a < b]
print(temp)
输出:
21.5
Python 中 2.5 之前的版本中使用 lambda
的三元运算符
对于 Python 2.5 之前的版本,三元运算符可与 lambda
一起使用。此方法采用要返回的值和布尔表达式。此方法遵循惰性评估技术,在该技术中,评估过程会延迟到需要其值之前。从这个意义上说,它是一种比元组方法更好的方法。该方法中的表达式为 (falseValue, trueValue)[Test]()
。如果测试条件评估为 True
,则将打印 trueValue
;否则,将打印 falseValue
。
下面给出了一个示例代码,描述如何在 Python 中通过使用 lambda
来使用三元运算符。
val1, val2 = 12, 43
output = (lambda: val2, lambda: val1)[val1 > val2]()
print(output)
输出:
43
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn