Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 튜플 비교는 어떻게 작동할까?

파이썬에서 튜플은 위치(position)별로 순차적으로 비교됩니다. 즉, 첫 번째 튜플의 첫 번째 요소와 두 번째 튜플의 첫 번째 요소를 먼저 비교하고, 두 요소가 같지 않다면 그 비교 결과가 전체 비교 결과가 됩니다. 만약 두 요소가 같다면 다음 위치의 요소를 비교하고, 그래도 같으면 그다음 요소를 비교하는 방식으로 진행됩니다.

비교 예제

>>> a = (1, 2, 3)
>>> b = (1, 2, 5)
>>> a < b
True

위 예제에서 앞의 두 요소(1과 2)는 서로 같기 때문에 비교가 계속 진행되고, 세 번째 요소에서 3 < 5가 성립하므로 a < bTrue를 반환합니다. 이러한 동작 방식은 문자열 비교와 유사하게 사전식(lexicographical) 순서를 따른다고 볼 수 있습니다.

집합(Set)을 활용한 공통 요소 찾기

단순한 크기 비교 외에도, 두 튜플 사이에서 공통된 요소와 서로 다른 요소를 확인해야 하는 경우가 있습니다. 이럴 때는 집합(set)을 활용하면 편리합니다. 집합은 튜플을 받아 중복을 제거한 고유한 값들만 남기기 때문에, 교집합 연산을 통해 두 튜플의 공통 객체를 손쉽게 구할 수 있습니다.

& 연산자 사용

>>> a = (1, 2, 3, 4, 5)
>>> b = (9, 8, 7, 6, 5)
>>> set(a) & set(b)
{5}

intersection() 메서드 사용

& 연산자 대신 set.intersection() 메서드를 사용해도 동일한 결과를 얻을 수 있습니다.

>>> a = (1, 2, 3, 4, 5)
>>> b = (9, 8, 7, 6, 5)
>>> set(a).intersection(set(b))
{5}

정리하면, 파이썬의 튜플 비교는 요소를 앞에서부터 하나씩 순서대로 비교하는 사전식 비교 방식을 따르며, 공통 요소를 찾고 싶다면 집합의 교집합 연산(& 또는 intersection())을 활용하는 것이 가장 간결하고 효율적인 방법입니다.