본문 바로가기

Code Snippets/파이썬

[파이썬] 리스트에서 중복 값을 제거하는 2가지 방법

데이터 전처리 중 가장 자주 나오는 유형이 '중복된 값 제거'이다.

리스트에서 중복 값을 제거하는 2가지 방법이 있는데, 보통 이 중 첫번째 방법만 안다.

 

 

방법 1 : Set으로 전환한 후, 다시 리스트로 바꾸기

파이썬 자료형 중 Set을 이용한 방법이다.

중복 자료를 허용하지 않는 집합 자료형(Set)의 특징을 이용한 것이다.

 

 

 

## 방법 1) set으로 바꾼 후 다시 list로 변환
duplicate_list = ['안','녕','하','세','요','세','요']
cleaned_list = list(set(duplicate_list))

하지만 집합 자료형은 중복 자료도 허용하지 않고, 자료 순서도 고려하지 않는다.

그래서 리스트의 원래 순서가 유지되지 않는 경우가 많다.

 

 

 

방법 2: dict.fromkeys()를 사용하기

이 때 dict.fromkeys()를 이용해서

1) 먼저 리스트의 값이 key가 되는 딕셔너리를 만든 후

2) 딕셔너리를 다시 리스트로 변환하면 순서가 유지되지 않는 위의 문제점을 해결하면서 중복된 값을 제거할 수 있다.

 

duplicate_list = ['안','녕','하','세','요','세','요']
tmp = dict.fromkeys(duplicate_list)
cleaned_list2 = list(tmp)