我看到了Python的這種用法,它非常乾淨,但我不太瞭解這種用法,也無法搜索任何有用的解釋。這是什麼:使用backet來實現Python中的if語句?
這是正常的方法:
if a < 0: b = 2 * a else: b = 3 * a
這實現同樣的目的:
b = a * (3,2) [a<0]
有人能告訴我哪裏的官方文檔說些什麼關於上述?
我看到了Python的這種用法,它非常乾淨,但我不太瞭解這種用法,也無法搜索任何有用的解釋。這是什麼:使用backet來實現Python中的if語句?
這是正常的方法:
if a < 0:
b = 2 * a
else:
b = 3 * a
這實現同樣的目的:
b = a * (3,2) [a<0]
有人能告訴我哪裏的官方文檔說些什麼關於上述?
b = a * (3,2) [a<0]
a<0
是返回true or false
即1/0
(3,2)
是3
元組和2
作爲元素
如果條件true
聲明將在指數1
其他被索引的元素,它將索引,以元素0
像
In [33]: (3,2)[0]
Out[33]: 3
In [34]: (3,2)[1]
Out[34]: 2
在0
條件的結果或1
因爲在蟒蛇True means 1
和False means 0
In [35]: True == 1
Out[35]: True
In [36]: False == 0
Out[36]: True
請僅將第二個選項用於打高爾夫球。該文檔實際上並沒有多說這個語法,但The Zen of Python確實表明'簡單比複雜'更好,並且'可讀性計數'。你應該使用第一個選項。
你也可以使用Python的三元操作:
b = a*(2 if a < 0 else 3)
高爾夫將更像'b = a *(3-(a <0))' – 2013-02-13 10:10:10
可以給這個官方文檔的地址嗎?TKS你的回答 – smilejustforfan 2013-02-13 12:47:25
我懷疑是否有官方文檔關於這一點,這是所有關於組合你所知道的「元組」和「條件」語句,這不是標準的方法做到這一點,但這是其中一種方式,即使在某個地方會有文檔,它也只會引用標準方法「if-else」 – avasal 2013-02-14 03:51:47