본문 바로가기

카테고리 없음

파이썬 리스트 중복 제거, 유일한 값 찾기

파이썬 리스트에 중복된 값을 제거하고 싶다면 어떻게 해야 하는지 알아보겠습니다. 크게 두 가지 방법이 있습니다. 1) 집합(set) 자료형을 이용한다. 2) for문을 이용해 리스트 요소를 순회하며 중복 여부를 체크한다.

 

샘플 데이터

다음과 같은 샘플 데이터가 있습니다. A가 2번, B가 2번, D가 2번으로 중복 값이 존재합니다.

my_list = ['A', 'B', 'C', 'D', 'B', 'D', 'E']

 

1. set을 이용해서 중복 제거하기

집합 자료형은 두 가지 큰 특징이 있습니다. 1) 중복을 허용하지 않는다. 2) 순서가 없다. 이 두 가지 특징 중 첫 번째 특징을 이용하면 손쉽게 리스트 요소의 중복을 제거할 수 있습니다.

# 집합으로 변환
my_set = set(my_list)

# 리스트로 변환
new_list = list(my_set)

# 결과 출력
print(type(new_list))
# >>> <class 'list'>

print(new_list)
# >>> ['D', 'B', 'A', 'E', 'C']

 

다만 위와 같이 set을 이용한 방식으로 중복을 제거할 경우, 순서가 뒤죽박죽 된다는 단점이 있습니다. 만약 순서를 지켜야 하는 경우라면 반복문을 이용하면 됩니다.

 

2. for문을 이용해서 중복 제거하기

my_list의 모든 요소를 순회하며 해당 요소가 new_list에 있는지 확인한 다음 해당 요소가 존재하지 않으면 new_list에 추가합니다. 반복문과 조건문을 이용한 방법으로 순서가 유지됩니다.

new_list = []

for v in my_list:
    if v not in new_list:
        new_list.append(v)
        
print(type(new_list))
# >>> <class 'list'>

print(new_list)
# >>> ['A', 'B', 'C', 'D', 'E']

 

리스트의 중복된 값을 제거하는 두 가지 간단한 방법을 알아보았습니다. 

 

 

- 이 글의 코드는 아나콘다(Anaconda3)가 설치된 주피터 노트북에서 작성되었습니다.