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

파이썬(Python) 중첩 튜플에서 고유 요소만 추출하는 방법

중첩된 튜플(nested tuple)에서 고유한(unique) 요소들만 추출해야 할 때는 중첩 반복문과 파이썬의 집합(set) 자료형을 함께 활용하면 효율적으로 처리할 수 있습니다.

파이썬에는 기본적으로 'set'이라는 자료형이 내장되어 있으며, set은 오직 중복되지 않는 고유한 값들만 저장합니다. 또한 교집합(intersection), 차집합(difference), 합집합(union), 대칭차집합(symmetric difference) 같은 집합 연산에도 매우 유용하게 사용됩니다.

아래는 중첩 튜플에서 고유 요소를 추출하는 과정을 보여주는 예제입니다.

예제 코드

my_list_1 = [(7, 8, 0), (0 ,3, 45), (3, 2, 22), (45, 12, 9)]

print ("The list of tuple is : " )
print(my_list_1)

my_result = []
temp = set()
for inner in my_list_1:
    for elem in inner:
        if not elem in temp:
            temp.add(elem)
            my_result.append(elem)
print("The unique elements in the list of tuples are : ")
print(my_result)

실행 결과

The list of tuple is :
[(7, 8, 0), (0, 3, 45), (3, 2, 22), (45, 12, 9)]
The unique elements in the list of tuples are :
[7, 8, 0, 3, 45, 2, 22, 12, 9]

코드 설명

  • 튜플들을 담고 있는 리스트를 정의하고, 콘솔에 출력합니다.
  • 결과를 저장할 빈 리스트와, 이미 확인한 값을 추적하기 위한 빈 set을 각각 생성합니다.
  • 바깥 반복문으로 리스트를 순회하고, 안쪽 반복문으로 각 튜플의 요소를 하나씩 검사합니다.
  • 해당 요소가 set에 존재하지 않으면(즉, 처음 등장한 값이면), set과 결과 리스트에 모두 추가합니다.
  • set 덕분에 중복 검사는 O(1) 시간 복잡도로 빠르게 수행됩니다.
  • 최종 결과 리스트에는 중복 없이 첫 등장 순서대로 고유 요소들이 저장되며, 이를 콘솔에 출력합니다.

이 방식은 순서를 유지하면서 중복을 제거해야 하는 경우 특히 유용합니다. 만약 순서가 중요하지 않다면, 모든 요소를 하나의 set에 합친 뒤 바로 사용하는 더 간단한 방법도 가능합니다.