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

Python 튜플 리스트에서 중복 요소 제거하기

튜플 안에서 중복된 요소를 제거해야 하는 경우, 리스트 컴프리헨션(list comprehension)을 활용하면 간단하게 처리할 수 있습니다.

리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 하나의 자료구조에 저장할 수 있습니다.

여기서 '튜플의 리스트(list of tuple)'란 리스트 내부에 여러 개의 튜플이 포함되어 있는 형태를 의미합니다.

리스트 컴프리헨션은 리스트를 반복(iteration)하면서 원하는 연산을 수행할 수 있도록 해주는 간결한 축약 문법으로, 반복문과 조건문을 한 줄로 표현할 수 있어 코드의 가독성과 효율성을 높여줍니다.

예제

my_list_1 = [(11, 14), (0, 78), (33, 11), (0, 78)]

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

my_unique_list = list(set([i for i in my_list_1]))

print("The list of tuples after removing duplicates is :")
print(my_unique_list)

실행 결과

The list of tuple is :
[(11, 14), (0, 78), (33, 11), (0, 78)]
The list of tuples after removing duplicates is :
[(33, 11), (11, 14), (0, 78)]

코드 설명

  • 튜플로 구성된 리스트를 정의하고 콘솔에 출력합니다.
  • 리스트 컴프리헨션을 통해 리스트를 순회한 뒤, set() 함수로 변환합니다.
  • 집합(set)은 중복을 허용하지 않는 자료형이므로, 이 과정에서 고유한(unique) 요소만 남게 됩니다.
  • 다시 list()로 변환하여 리스트 형태로 되돌립니다.
  • 중복이 제거된 결과를 변수에 할당합니다.
  • 최종 결과를 콘솔에 출력합니다.

참고 사항

집합(set)은 순서가 없는(unordered) 자료형이기 때문에, 중복 제거 후 리스트로 변환하면 원래의 입력 순서가 유지되지 않을 수 있습니다. 만약 원래 순서를 유지하면서 중복을 제거하고 싶다면 아래와 같은 방법을 사용할 수 있습니다.

my_unique_list = []
for item in my_list_1:
    if item not in my_unique_list:
        my_unique_list.append(item)

이 방식은 순서를 보장하면서 중복만 제거하므로, 순서가 중요한 데이터를 다룰 때 유용합니다.