>  기사  >  백엔드 개발  >  Python 내장 비교 함수 cmp의 비교 원리 분석

Python 내장 비교 함수 cmp의 비교 원리 분석

高洛峰
高洛峰원래의
2016-10-18 09:33:451382검색

Python 내장 비교 함수 cmp의 비교 원리 분석

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 함수의 비교 원리입니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.