在python神奇的世界里
你可能見過這個樣的語句:
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ī)則顽聂,顯然我們要先從左邊第一個“==”開始,
以上題為例猪勇,若“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)“等價于”5== len(a) and len(a)== len(b)“
這樣是不是就一目了然了呢昼弟??