Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- 파이썬
- 이진탐색
- 너비우선탐색
- 코테
- 백준
- 딥러닝
- 프로그래머스
- HTTP
- BOJ
- 캐싱
- 딕셔너리
- 깊이우선탐색
- 스택과 힙
- post
- rest api
- 코딩
- 강화학습
- 머신러닝
- 오버라이딩
- 파이썬 오류
- 파이썬 알고리즘
- 알고리즘
- 자바
- 지도학습
- 비지도학습
- bineary search
- Merge sort
- 멱등
- 해시
Archives
- Today
- Total
chae._.chae
파이썬에서 리스트 중복 제거하기 본문
728x90
반응형
파이썬 리스트에서 중복된 값을 제거하는 방법에는 세 가지가 있다.
1. set 자료형 이용(집합)
2. for문을 사용해 리스트를 돌며 중복 여부를 모두 체크
3. 딕셔너리(dictionary)를 이용한 중복 제거
⚡SET(집합) 자료형 이용하기
set은 파이썬의 내장함수로, 중복되지 않은 원소(unique)를 얻고자 할 때 사용한다.
set 자료구조의 특징은 중복이 없다는 점이다.
data = ['A', 'C', 'B', 'A']
set_data = set(data) # set으로 변환
list_data = list(set_data) # 리스트로 변환
print(list_data)
# ['C', 'A', 'B'] 가 출력됨
위의 예제에서 set한 내용을 그대로 출력하면(리스트로 바꾸지 않고), {} 괄호에 묶여져 있다.
즉, 리스트로 값을 가져오길 원한다면, list(set(리스트)) 이다.
단, set방식으로 중복을 제거할 경우, 순서가 뒤섞인다는 유의사항이 있다.
순서를 지켜야하는 경우라면, 반복문을 사용한다.
⚡for문을 사용해 리스트 돌며 중복 여부 체크하기
data = ['A', 'C', 'B', 'A']
result = []
for i in data:
if i not in result: # 해당 데이터가 없다면 추가해주고, 이미 존재한다면 넘어간다.
result.append(i)
print(result)
# ['A', 'C', 'B'] 가 출력됨
리스트에 있는 모든 원소를 확인하며 새로 만든 result리스트에 해당 원소가 있는지 확인한 뒤에, 없으면 append시켜준다.
⚡dictionary를 이용한 중복 제거 방법
파이썬에서 dictionary 자료구조도 set처럼 중복이 허용되지 않는다.
dictionary는 키(key), 값(value)의 한 쌍이 하나의 대응관계를 가지고 있는 자료형이다.
key 값은 중복되면 안된다는 특징을 이용한다.
data = ['A', 'C', 'B', 'A']
result = dict.fromkeys(data)
print(result)
# {'A': None, 'C': None, 'B': None} 가 출력됨
result = list(result) # result = list(dict.fromkeys(data))
print(result)
# ['A', 'C', 'B'] 가 출력됨
dict.fromkeys(리스트)를 이용해서 중복을 제거할 수 있다.
딕셔너리는 순서가 없고, 키와 값을 선언할 때는 콜론으로 구분한다.
728x90