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

Python 튜플에서 서로 다른 요소 찾는 방법 – set과 XOR 연산자 활용하기

튜플 안에서 서로 다른(유사하지 않은) 요소를 찾아야 할 때, Python의 set 자료형과 '^' 연산자를 함께 사용하면 간단하게 해결할 수 있습니다.

set 자료형이란?

Python은 고유한(unique) 요소만을 저장하는 set이라는 자료형을 기본으로 제공합니다. set은 중복을 허용하지 않기 때문에 두 데이터 집합 간의 차이를 비교하는 데 매우 유용합니다.

또한 set은 교집합(intersection), 차집합(difference), 합집합(union), 대칭차집합(symmetric difference) 같은 집합 연산을 효율적으로 수행할 수 있습니다.

'^' 연산자의 역할

'^' 연산자는 비트(bitwise) 연산자로, XOR(배타적 논리합) 연산을 수행합니다. 두 비트 중 하나만 1일 때 결과 비트가 1이 되며, 이 특성을 응용하면 두 set 사이에 한쪽에만 존재하는 요소, 즉 서로 다른 요소를 손쉽게 추출할 수 있습니다.

아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

예제 코드

my_tuple_1 = ((7, 8), (3, 4), (3, 2))
my_tuple_2 = ((9, 6), (8, 2), (1, 4))

print("첫 번째 튜플 : ")
print(my_tuple_1)
print("두 번째 튜플 : ")
print(my_tuple_2)

my_result = tuple(set(my_tuple_1) ^ set(my_tuple_2))

print("두 튜플에서 서로 다른 요소들 : ")
print(my_result)

실행 결과

첫 번째 튜플 :
((7, 8), (3, 4), (3, 2))
두 번째 튜플 :
((9, 6), (8, 2), (1, 4))
두 튜플에서 서로 다른 요소들 :
((3, 4), (9, 6), (1, 4), (8, 2), (3, 2), (7, 8))

코드 설명

  • 두 개의 중첩 튜플(튜플의 튜플)을 정의하고 콘솔에 출력합니다.
  • 각 튜플을 set으로 변환한 뒤 '^' 연산자를 적용하여 양쪽에 공통으로 존재하지 않는 요소들만 추출합니다.
  • 연산 결과는 변수에 저장되며, tuple() 함수를 통해 다시 튜플 형태로 변환됩니다.
  • 최종 결과가 콘솔에 출력됩니다.

참고 사항

set은 순서를 보장하지 않기 때문에 실행 결과의 요소 순서는 매번 달라질 수 있습니다. 순서가 중요하다면 결과를 sorted() 함수로 정렬하여 사용하는 것이 좋습니다. 또한 이 방법은 튜플의 요소들이 해시 가능(hashable)해야 정상적으로 동작한다는 점도 기억해 두세요.