在 C 语言或者 Java 等语言中,三元表达式是下面这种格式
boolean值 ? "为真返回" : "为假返回"
在 Python 中,并没有这种写法,但是也可以实现,学会写三元表达式,在 lambda 表达式中很好用。
- 常规的Python 三元表达式, 用 if else 实现
# 中间是布尔表达式,为真返回前面的,为假返回后面的
x = "大于" if 3>1 else "小于"
print(x)
## 结果为: 大于
- 巧用 and - or 实现 Python 三元表达式
# 前面是布尔表达式,为真返回and后的值,为假返回or后的值
3>1 and "大于" or "小于"
## 结果为:大于
- 用 np 库的 where 函数
import numpy as np
## np.where(判断条件,为真时的处理,为假时的处理)
x = np.where(3>4 , "大于", "小于")
print(x)
# 结果为:小于
- 在 lambda 表达式中的运用:
用一行代码判断两个数字的大小
compare = lambda a, b : a > b and "大于" or ( a ==b and "等于" or "小于")
print(compare(2,3)) # 小于
print(compare(2,2)) # 等于
print(compare(5,3)) # 大于