[英]How does this:Use backet to achieve if statement in Python?
我看到了Python的用法,這很干凈,但是我不太理解這種用法,也無法搜索任何有用的解釋。
這是正常的方法:
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
因為在python中, True means 1
, False means 0
In [35]: True == 1
Out[35]: True
In [36]: False == 0
Out[36]: True
將第二個選項僅用於打高爾夫球。 這些文檔確實並沒有說太多,但是Python的Zen確實指出“簡單勝於復雜”,並且“可讀性很重要”。 您應該使用第一個選項。
您還可以使用Python的三元運算符 :
b = a*(2 if a < 0 else 3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.