본문 바로가기

Language/Python

python list 중복제거

python에서 리스트는 여러모로 많이 쓰입니다.

보통 리스트에 저장된 모든 값들을 출력을 많이 하는데 중복된 값이 있다면 필요가 없겠죠.


이때 set함수를 사용합니다.

set함수는 집합과 관련된 함수로 중복제거에 사용 시 아래와 같이 사용하면 됩니다.


list1 = ['1', '3', '5', '2', '4', '1', '5']


print list(set(list1))


<결과>


하지만 set함수는 위에서 보시는 것처럼 '순서와 상관없이' 중복만 제거 합니다.


만약 순서를 유지하면서 출력을 하고 싶다면 아래 코드를 이용하시면 됩니다.


from collections import OrderedDict


list2 = ['1', '2', '3', '4', '5', '3', '5']

print list(OrderedDict.fromkeys(list2))


OrderedDict 라이브러리를 사용하여 원본 리스트가 가진 값을 순서대로 정렬 및 중복 제거를 수행합니다.


<결과>

아마 이런 식의 출력을 원하시는 분들이 더 많을 것 같습니다.


다른 언어로는 여러 줄의 코드가 필요하겠지만 파이썬으로는 한 줄이면 가능하다는 점이 많은 분들이 파이썬을 사용하는 이유가 아닐까 싶습니다.


=)