2014-08-27 2 views
1

에서 나는 다음과 같은(3)`파이썬

>>> 3<range(3) 
True 
>>> [1,2]<range(3) 
False 
>>> [1]<range(3) 
False 
>>> [4]<range(3) 
False 
>>> [4,1,2,3]<range(3) 
False 

감사합니다 설명하는 참조를 찾을 경우 확실하지 않다!

+0

@MartijnPieters는 각각 해당 색인에서 평가되지 않은 요소입니까? –

+0

@PadraicCunningham :'range()'는 '0'으로 시작하는리스트를 생성합니다. –

+1

@PadraicCunningham : 목록 예,하지만 유형이 다른 경우 유형 이름으로 정렬됩니다. –

답변

3

파이썬 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 설명서 :

튜플과 목록은 해당 요소를 비교하여 사전 식으로 비교됩니다. 즉, 동일 함을 비교하려면 각 요소가 동일해야하며 두 시퀀스가 ​​동일한 유형이어야하고 길이가 같아야합니다.