Python에서 리스트 중복 제거하기

GyungHo Go·2020년 4월 22일
8
post-thumbnail

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

SET을 이용하여 중복 제거하기

집합 자료형은 크게 두가지 특징이 있다.

  • 중복을 허용하지 않는다.
  • 순서가 없다.

이 두 가지 중에 첫번째 특징을 이용하여 중복을 제거할 수 있다.

my_list = ['A', 'B', 'C', 'D', 'B', 'D', 'E']
my_set = set(my_list) #집합set으로 변환
my_list = list(my_set) #list로 변환
print(new_list)
출력된 값은 ['D', 'B', 'A', 'E', 'C']

set의 방식으로 중복을 제거할 경우, 순서가 뒤죽박죽 된다는 단점이 있다. 만약 순서를 지켜야 하는 경우, 반복문을 사용한다.

FOR문을 이용하여 중복 제거하기

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

my_list = ['A', 'B', 'C', 'D', 'B', 'D', 'E']
new_list = []
for v in my_list:
    if v not in new_list:
        new_list.append(v)
print(new_list)
출력된 값 ['A', 'B', 'C', 'D', 'E']
profile
기록하는 습관

3개의 댓글

comment-user-thumbnail
2020년 12월 31일

2번째 방법은 시간복잡도가 O(N^2)입니다. 딕셔너리로 하는 방법이 더 빠르겠습니다. 평균 O(N)에 동작합니다.

1개의 답글
comment-user-thumbnail
2021년 1월 24일

감사합니다

답글 달기