반응형
python에서 리스트를 사용하다보면 안에 중복된 데이터를 지우고 싶을때가 있다.
루프를 돌면서 하나하나 비교해가면서 지우는 방법말고 다른 방법이 있나 찾아보니 아래와 같은 방법을 통해 중복되는 원소를 쉽게 지울 수 있다.
1. set 함수를 이용해서 중복제거
>>> data = [1, 2, 2, 3, 3, 5]
>>> data
[1, 2, 2, 3, 3, 5]
>>> set(data)
{1, 2, 3, 5}
>>> list(set(data))
[1, 2, 3, 5]
python의 set(집합) 함수를 사용하면 리스트 내의 원소들을 unique한 값만 뽑아서 반환한다.
다만 반환 데이터가 set 함수의 형태이기 때문에 이를 list 형태로 변환해줘야 한다.
2. dict.fromKeys함수를 이용해서 중복제거
>>> data = [1, 2, 2, 3, 3, 5]
>>> data
[1, 2, 2, 3, 3, 5]
>>> dict.fromkeys(data)
{1: None, 2: None, 3: None, 5: None}
>>> list(dict.fromkeys(data))
[1, 2, 3, 5]
dict.fromKeys 함수는 키 리스트로 딕셔너리를 생성하고 기본적으로 값은 모두 None으로 저장한다.
이때 중복된 키 값은 사라지고 unique한 키 값만 남게된다.
이렇게 반환된 dictionary 형태를 다시 list로 형변환 해주면 unique한 원소만 남게된다.
반응형
'Python' 카테고리의 다른 글
[python] datetime 날짜와 시간 차이 구하기 (0) | 2021.06.26 |
---|---|
[python] 폴더 있는지 체크하고 없으면 만들기 (mkdir -p) (0) | 2021.06.14 |
[python] pycache, pyc 캐시 데이터 삭제 명령어 in linux (0) | 2021.05.30 |
[python] 파이썬으로 윈도우 cmd 명령어 수행하기 (0) | 2021.04.15 |
[python] 파이썬으로 리눅스 쉘 명령어 수행하기 (0) | 2021.04.15 |