在 C 語言或者 Java 等語言中驻呐,三元表達式是下面這種格式
boolean值 ? "為真返回" : "為假返回"
在 Python 中灌诅,并沒有這種寫法,但是也可以實現(xiàn)含末,學(xué)會寫三元表達式猜拾,在 lambda 表達式中很好用。
- 常規(guī)的Python 三元表達式佣盒, 用 if else 實現(xiàn)
# 中間是布爾表達式挎袜,為真返回前面的,為假返回后面的
x = "大于" if 3>1 else "小于"
print(x)
## 結(jié)果為: 大于
- 巧用 and - or 實現(xiàn) Python 三元表達式
# 前面是布爾表達式肥惭,為真返回and后的值盯仪,為假返回or后的值
3>1 and "大于" or "小于"
## 結(jié)果為:大于
- 用 np 庫的 where 函數(shù)
import numpy as np
## np.where(判斷條件,為真時的處理蜜葱,為假時的處理)
x = np.where(3>4 , "大于", "小于")
print(x)
# 結(jié)果為:小于
- 在 lambda 表達式中的運用:
用一行代碼判斷兩個數(shù)字的大小
compare = lambda a, b : a > b and "大于" or ( a ==b and "等于" or "小于")
print(compare(2,3)) # 小于
print(compare(2,2)) # 等于
print(compare(5,3)) # 大于