파이썬에서 튜플은 위치(position)별로 순차적으로 비교됩니다. 즉, 첫 번째 튜플의 첫 번째 요소와 두 번째 튜플의 첫 번째 요소를 먼저 비교하고, 두 요소가 같지 않다면 그 비교 결과가 전체 비교 결과가 됩니다. 만약 두 요소가 같다면 다음 위치의 요소를 비교하고, 그래도 같으면 그다음 요소를 비교하는 방식으로 진행됩니다.
비교 예제
>>> a = (1, 2, 3) >>> b = (1, 2, 5) >>> a < b True
위 예제에서 앞의 두 요소(1과 2)는 서로 같기 때문에 비교가 계속 진행되고, 세 번째 요소에서 3 < 5가 성립하므로 a < b는 True를 반환합니다. 이러한 동작 방식은 문자열 비교와 유사하게 사전식(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())을 활용하는 것이 가장 간결하고 효율적인 방법입니다.