[python] 파이썬에서 튜플 비교는 어떻게 작동합니까?

저는 Core Python 프로그래밍 책을 읽었으며 저자는 다음과 같은 예를 보여줍니다.

(4, 5) < (3, 5) # Equals false

그래서, 나는 그것이 어떻게 / 왜 거짓과 같은지 궁금합니다. 파이썬은이 두 튜플을 어떻게 비교합니까?

Btw, 그것은 책에서 설명되지 않았습니다.



답변

튜플은 위치별로 비교된다 : 제 1 튜플의 제 1 항목은 제 2 튜플의 제 1 항목과 비교되고; 이들이 동일하지 않으면 (즉, 첫 번째가 두 번째보다 크거나 작 으면) 비교 결과입니다. 그렇지 않으면 두 번째 항목이 고려되고 세 번째 등이 고려됩니다.

일반적인 시퀀스 작업을 참조하십시오 .

동일한 유형의 시퀀스도 비교를 지원합니다. 특히, 튜플과리스트는 해당 요소를 비교하여 사전 식으로 비교됩니다. 즉, 동일하게 비교하려면 모든 요소가 동일하게 비교되어야하며 두 시퀀스의 유형이 동일하고 길이가 같아야합니다.

또한 값 비교 자세한 내용은 :

내장 컬렉션 사이의 사전 비교는 다음과 같이 작동합니다.

  • 두 컬렉션이 동일하게 비교 되려면 동일한 유형이어야하고 길이가 동일해야하며 해당하는 각 요소 쌍이 동일하게 비교되어야합니다 (예 : [1,2] == (1,2)유형이 같지 않기 때문에 false 임).
  • 주문 비교를 지원하는 컬렉션은 첫 번째 같지 않은 요소와 동일하게 정렬됩니다 (예 : [1,2,x] <= [1,2,y]와 동일한 값을 가짐 x <= y). 해당 요소가 존재하지 않으면 더 짧은 콜렉션이 먼저 주문됩니다 (예 [1,2] < [1,2,3]: true).

동일하지 않은 경우 순서는 첫 번째 다른 요소와 동일하게 정렬됩니다. 예를 들어 cmp ([1,2, x], [1,2, y])는 cmp (x, y)와 동일을 반환합니다. 해당 요소가 존재하지 않으면 짧은 시퀀스가 ​​더 작은 것으로 간주됩니다 (예 : [1,2] <[1,2,3]은 True를 반환 함).

주 1 : <>하지 평균과 “이상” “보다 작은”하지만 “이전 인”과 “이후”그래서 (0, 1) “전입니다”(1, 0).

참고 2 : 튜플은 길이에 따라 n 차원 공간에서 벡터 로 간주해서는 안됩니다 .

참고 3 : /programming/36911617/python-2-tuple-comparison 질문 참조 : 첫 번째 요소가 해당 요소보다 큰 경우에만 튜플이 다른 것보다 “더 크다”고 생각하지 마십시오 두 번째에서 하나.


답변

파이썬 문서는 그것을 설명한다.

튜플과리스트는 해당 요소의 비교를 사용하여 사전 식으로 비교됩니다. 즉, 동일하게 비교하려면 각 요소가 동일하게 비교되어야하며 두 시퀀스의 유형이 동일하고 길이가 같아야합니다.


답변

파이썬 2.5 문서는 잘 설명합니다.

튜플과리스트는 해당 요소의 비교를 사용하여 사전 식으로 비교됩니다. 즉, 동일하게 비교하려면 각 요소가 동일하게 비교되어야하고 두 시퀀스의 유형이 동일하고 길이가 같아야합니다.

동일하지 않은 경우 시퀀스는 첫 번째 다른 요소와 동일하게 정렬됩니다. 예를 들어 cmp ([1,2, x], [1,2, y])는 cmp (x, y)와 동일을 반환합니다. 해당 요소가 존재하지 않으면 더 짧은 시퀀스가 ​​먼저 정렬됩니다 (예 : [1,2] <[1,2,3]).

불행히도 최신 버전의 설명서에서 해당 페이지가 사라진 것 같습니다.


답변

정수 비교와 관련하여 약간의 혼란이 있었으므로 예제에 더 초보자에게 익숙하다고 설명합니다.

a = ('A','B','C') # see it as the string "ABC"
b = ('A','B','D')

A는 해당 ASCII로 변환됩니다 ord('A') #65 다른 요소와 동일한

따라서
>> a>b # True

문자열을 비교하는 것으로 생각할 수 있습니다 (실제로 정확합니다)

정수도 마찬가지입니다.

x = (1,2,2) # see it the string "123"
y = (1,2,3)
x > y # False

왜냐하면 (1은 1보다 크지 않고, 다음으로 이동하고, 2는 2보다 크지 않고, 다음 2로 이동하면 3보다 작습니다-)

요점은 위의 답변에 언급되어 있습니다.

요소가 알파벳순이 아닌 다른 요소보다 앞에 있다고 생각하십시오.


답변