2
返回數值的符號奇怪的語法那麼的代碼下面的代碼片段返回x的符號:在蟒蛇
x = -15 (1, -1)[x < 0]
我很難理解爲什麼這句法的作品。特別是,你怎麼可以寫出一個元組後面的布爾值列表,並從中得到元組中的一個或另一個值......有人請解釋這個語法!
返回數值的符號奇怪的語法那麼的代碼下面的代碼片段返回x的符號:在蟒蛇
x = -15 (1, -1)[x < 0]
我很難理解爲什麼這句法的作品。特別是,你怎麼可以寫出一個元組後面的布爾值列表,並從中得到元組中的一個或另一個值......有人請解釋這個語法!
這是一種基於布爾值做索引的方法。如下面看到的那樣,True
和False
以整數的情況下分別計算爲1
和0
:
>>> int(True)
1
>>> int(False)
0
此外,(1, -1)
是一個元組,可被索引的序列對象:
>>> (314159,271828)[0]
314159
>>> (314159,271828)[1]
271828
結合這兩個事實,你應該能夠看出:
(1, -1)[x < 0]
會給y ou 1
當x < 0
爲假,-1
爲真。這基本上是x
的標誌。
只需要4個月的時間來回答這個顯而易見的基本問題;) – DeepSpace
沒關係---我現在明白了。我們使用邏輯語句的結果將元組索引到元組中。 – ireinventcodebicycles