1
我不知道在哪裏可以找到參考解釋如下如何理解`3 <範圍(3)`在python
>>> 3<range(3)
True
>>> [1,2]<range(3)
False
>>> [1]<range(3)
False
>>> [4]<range(3)
False
>>> [4,1,2,3]<range(3)
False
謝謝!
我不知道在哪裏可以找到參考解釋如下如何理解`3 <範圍(3)`在python
>>> 3<range(3)
True
>>> [1,2]<range(3)
False
>>> [1]<range(3)
False
>>> [4]<range(3)
False
>>> [4,1,2,3]<range(3)
False
謝謝!
在Python 2中,range()
產生一個列表對象。第一測試比較了兩種不同類型的,在該點numbers always come before other types:
>>> range(3)
[0, 1, 2]
>>> 3 < []
True
其餘部分只是比較列表針對[0, 1, 2]
;列表按字典順序進行比較,並且0
低於所有其他測試中的任何第一個值。
你的初始值應該是低於0:
>>> [-1] < range(3)
True
,或者,如果它是相等的,將下一個值應該低於1:
>>> [0, 0] < range(3)
True
等
見表達文件的Comparisons section:
使用對應元素的比較按字母順序比較元組和列表。這意味着爲了比較相等,每個元素必須相等並且兩個序列必須是相同類型並且具有相同長度。
@MartijnPieters,是否每個元素都不在相應的索引處進行評估? – 2014-08-27 17:30:17
@PadraicCunningham:'range()'產生一個從'0'開始的列表。 – 2014-08-27 17:30:46
@PadraicCunningham:對於列表是的,但是當類型不同時,它們按類型名稱排序 – 2014-08-27 17:31:00