Python中的三元运算符?
许多编程语言都支持三元运算符,这些运算符基本上定义了条件表达式。
类似地,python中的三元运算符用于根据二进制条件的结果返回值。它以二进制值(条件)作为输入,因此看起来类似于“if-else”条件块。但是,它还会返回一个值,因此其行为类似于函数。
语法
[on_true] if [expression] else [on_false]
让我们写一个简单的程序,比较两个整数-
一种。使用pythonif-else语句-
>>> x, y = 5, 6 >>> if x>y: print("x") else: print("y") y
b。使用三元运算符
>>> x, y = 5, 6 >>> print("x" if x> y else "y") y
使用三元运算符,我们可以在一行中编写代码。因此,python基本首先评估条件,如果为true–评估第一个表达式,否则评估第二个条件。
>>> def find_max(a,b): return a if (a>b) else b >>> find_max(5, 6) 6
三元运算符的实现方式
以下是实现三元运算符的不同方法。
一种。使用Python元组
>>> a, b = random(), random()>>> (b, a) [a>b] 0.5497848117028667
以上相当于-
>>> (b, a) [True] 0.5065247098746795
但是,如果您对返回的值感到困惑,则返回的是'a'或'b'。让我们重写上面的代码。
>>> (f"b:{b}", f"a:{a}") [a>b] 'b:0.5497848117028667'
b。使用Python字典
>>> a, b = random(), random()>>> {False: f"b:{b}", True: f"a:{a}"}[a>b] 'a:0.8089581560973976'
我们可以互换键值对-
>>> {True: f"a:{a}", False: f"b:{b}"}[a>b] 'a:0.8089581560973976'
C。使用Lambda
我们可以使用pythonlambda函数充当三元运算符-
>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]() 'b:0.6780078581465793'
嵌套的Python三元运算符
让我们尝试链接这些运算符-
>>> from random import random >>> x = random()>>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"
输出结果
'between 0 and 5'
让我们检查x的实际值-
>>> x 0.08009251123993566