Python的三元表示式
阿新 • • 發佈:2018-11-23
其他語言的三元表示式
result = 判定條件? 為真時的結果:為假時的結果
# 示例:
result = 5>3? 1:0 # 條件為真是result賦值為1,條件為假時賦值為0
Python中的三元表示式
result = 為真時的結果 if 判斷條件 else 為假時的結果
# 示例:
>>> x = 1
>>> y = 2
>>> result = x if x > y else y # 如果條件成立,將x的值賦給result
>>> result
2
上面的三元表示式等價於
>>> x = 1
>>> y = 2
>>> if x > y:
... result = x
... else:
... result = y
...
>>> result
2
>>>
三元表示式的幾個常見應用
1. 結合函式結合使用
# 示例一: 求兩個引數的最大值 >>> def max(x, y): ... return x if x > y else y # 取兩個值的比較大的 ... >>> max(1, 3) 3 >>> # 示例二: 斐波那契數列 >>> def fib(n): ... return n if n<2 else fib(n-1)+fib(n-2) ... >>> [fib(n) for n in range(10)] [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] >>>
2. 結合匿名函式使用
>>> map(lambda x,y:x-y if x> y else y-x, [2,1,3],[4,3,1]) # 兩個列表相減並保證不為負
[2, 2, 2]
>>>
3. 結合列表推導使用
# 示例一: 將0-9的10個數,奇數用0表示,偶數用1表示 >>> [0 if i % 2 == 0 else 1 for i in range(10)] [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] # 示例二: 常規寫法 >>> x = 100 >>> L = [] >>> L.append(1 if x>0 else 0) >>> L [1] >>>
4. 在處理Json格式中的一個典型應用
使用三元表示式的寫法
一般的寫法,可以看見,使用三元表示式的寫法要簡潔的多!
5. 三元表示式的一個變種
>>> cond = True
>>> name = ["Cat", "Tom"][bool(cond)]
>>> name
'Tom'
>>> cond = ""
>>> name = ["Cat", "Tom"][bool(cond)]
>>> name
'Cat'
>>>