cmp(x, y): 두 개체를 비교하여 전자가 후자보다 작으면 -1을 반환하고 같으면 0을 반환합니다. 후자보다 크면 1을 반환합니다.
Python cmp 비교 함수의 비교 원리
Python의 cmp 함수는 동일한 유형 간 또는 다른 데이터 유형 간 비교할 수 있습니다. 그런 다음 Python의 cmp 비교 함수의 반환 값을 기반으로 비교 크기를 결정합니다.
>>> list1, list2 = [123, 'xyz'], [456, 'abc'] >>> cmp(list1, list2) -1 >>> cmp(list2, list1) 1 >>> list3 = list2 + [789] >>> list3 [456, 'abc', 789] >>> cmp(list2, list3) -1
위의 cmp 함수에 대한 여러 비교를 관찰하면 다음과 같이 요약할 수 있습니다.
비교하면 Python의 cmp 비교 함수 동일한 유형의 객체에 대한 비교 작업은 매우 직관적입니다.
숫자와 문자열의 비교, 그 값을 직접 비교합니다.
시퀀스 유형 비교의 경우 방법은 유사합니다. Python은 두 개체가 기본적으로 비교할 수 없을 때 공정한 결과를 생성하려고 시도합니다. 예를 들어, 두 객체가 관계가 없거나 두 유형에 비교 기능이 전혀 없는 경우 Python은 "논리"에 기초하여 결론을 내릴 수만 있습니다. 비교 알고리즘 논리:
1. 두 리스트의 요소를 비교합니다.
2. 비교된 요소가 동일한 유형이면 해당 값을 비교하고 결과를 반환합니다.
3. 두 요소가 동일한 유형이 아닌 경우 숫자인지 확인합니다.
a. 숫자인 경우 필요한 숫자 캐스팅을 수행한 후 비교합니다.
b. 한쪽의 요소가 숫자이면 반대쪽의 요소는 "큰" 것입니다(숫자가 "가장 작은 것")
c. 그렇지 않으면 유형 이름의 알파벳 순서로 비교합니다. .
4. 한 목록이 먼저 끝에 도달하면 다른 긴 목록이 "더 커집니다".
5. 두 목록의 요소를 모두 소진하고 모든 요소가 동일하면 결과는 동점입니다.
은 0을 반환한다는 의미입니다.
이것이 Python cmp 함수의 비교 원리입니다.