python多個(gè)比較運(yùn)算符語句解析

在python神奇的世界里

你可能見過這個(gè)樣的語句:

if (5 == len(set(vec[i]+i for i in cols))== len(set(vec[i]-i for i in cols))):   
    print vec

或是這樣的語句?:

?a=[1,2,3,4,5]
b=[1,2,3,4,5]

if(5 == len(a) == len(b)):   
    print "yes"
else:   
    print "no"

?你可能會疑惑“==”比較符連在一起是什么意思?

按照c的語法規(guī)則,顯然我們要先從左邊第一個(gè)“==”開始,

以上題為例,若“5 == len(a)”?則返回布爾值“True”,然后再比較“True”和“l(fā)en(b)”是否相等。但是根據(jù)python例程的使用情況,我們推測出,python中的“5== len(a)== len(b)”顯然不是這樣比較的。

我們在?IDLE中輸入“help('==')”,得到以下信息,我只摘錄出主要部分,其他的信息讀者有興趣的話可以自己輸入命令查看。

Unlike C, all comparison operations in Python have the same priority,which is lower than that of any arithmetic, shifting or bitwiseoperation.……

Comparisons can be chained arbitrarily, e.g.,
"x < y <= z" isequivalent to "x < y and y <= z",?……

按照該官方文檔解釋,

”5== len(a)== len(b)“等價(jià)于”5== len(a) and len(a)== len(b)“

這樣是不是就一目了然了呢??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容