파이썬 cmp 비교 함수의 비교 원리
cmp(x, y): 두 객체를 비교하여 전자가 후자보다 작으면 -1을 반환하고, 같으면 0을 반환합니다. 후자보다 크면 1을 반환합니다.
파이썬 cmp 비교 함수의 비교 원리
파이썬의 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. 그렇지 않으면 유형의 알파벳 순서로 비교합니다. name.
4. 한 목록이 먼저 끝에 도달하면 다른 긴 목록이 "더 커집니다".
5. 두 목록의 요소를 모두 소진하고 모든 요소가 동일하면 결과는 동점입니다.
은 0을 반환한다는 의미입니다.
이것이 Python cmp 함수의 비교 원리입니다