Python/45가지 파이썬 기초문법 예제

파이썬 (10) - 중복 제거(Remove Duplication)

monstro 2025. 4. 6. 22:25
728x90
반응형

이번에는 중복을 제거하는 방법에 대해 알아보고 관련 예제를 통해 이를 적용해본다

예제는 다음과 같다

 

위와 같은 리스트에서 중복되는 데이터가 없는 리스트를 리턴하는 것이 목표이다

위를 구현하는 방법은 다음과 같다

 

1) set을 사용

set은 집합 자료형이지만, tuple이나 list와는 다르게

집합된 데이터들에 대해 중복을 허용하지 않고 또, 데이터들간의 순서가 존재하지 않는다

따라서 위와 같은 예제에서 사용이 가능하다

 

ex1 = set(ex)
print(list(ex1))

 

실행 결과는 다음과 같다

 

중복되는 데이터는 없어졌지만, 순서가 다르게 변경된 것을 확인할 수 있다

 

2) OrderedDict

OrderedDict중복을 없애주면서 기존의 순서를 유지하는데 사용할 수 있다

사용하기 위해서는 collections 모듈에서 불러와야 사용이 가능하다

 

from collections import OrderedDict
ex2 = list(OrderedDict.fromkeys((ex)))
print(ex2)

 

실행 결과는 다음과 같다

 

중복되는 데이터가 없어지고, 기존의 순서도 문제없이 유지된 것을 확인할 수 있다

 

3) 리스트 컴프리헨션

리스트 컴프리헨션을 통해서도 중복의 제거가 가능하다

로직의 구성은 다음과 같이 이뤄진다

 

수행동작 + 순회 + 조건 

 

따라서 다음과 같이 코드를 작성하였다

ex3 = []
ex4 = [ex3.append(x) for x in ex if x not in ex3]
print(ex3)

 

실행결과는 다음과 같다

 

 

마찬가지로 중복이 없어지고, 순서도 유지되어 있는 것을 확인할 수 있다

728x90
반응형