2015-01-08 3 views
-5

과 비교 파이썬에서 초보자이며 기본을 배우려고합니다. 파이썬 인터프리터에서 이상한 행동을 발견했습니다 :파이썬에서 문자열을 <비교 연산자

>>> 'Pp' < 'Pn' 
False  # --> expected p comes after n 
>>> 'Pap' < 'Pbn' 
True  # --> though a < b, p is not < n. How can this result as True? 

누군가 설명해 주시겠습니까?

+0

알파벳순입니다. – Squidly

+0

어휘 사전'http : // en.wikipedia.org/wiki/Lexicographical_order' –

답변

4

왜 당신은 그것을 신경 쓰길 기대합니까? 전화 번호부에서 찾을 수있는 것처럼 알파벳순 정렬입니다 (아직 존재하는 경우).

Pap 
Pb 
Pbn 
Pn 

그리고 실제로 파이썬이 반환하는 것입니다. docs에서

1

: 제 처음 두 항목을 비교하고, 이들이 다를 경우,이 비교의 결과를 결정한다 :

비교는 사전 식 순서를 사용하는 두 시퀀스가 ​​같으면 두 시퀀스가 ​​모두 소진 될 때까지 다음 두 항목이 비교됩니다.