Python/Python
[Python] 16. 리스트 중복 제거하기
구름솜:D
2024. 9. 8. 15:59
728x90
리스트 내의 중복되는 원소가 있으면 다음과 같은 방법으로 중복을 제거할 수 있다.
1. for문을 사용해서 중복 제거하기
2. set을 사용해서 중복 제거하기
3. dictionary를 사용해서 중복 제거하기
1. for문을 사용해서 중복 제거하기
- 중복된 원소가 포함된 리스트와 중복된 원소가 포함되지 않은 리스트를 반복문을 통해 포함연산자로 포함 여부를 확인해서 중복을 제거
duplicated = [1,1,2,3,4,4,5,6]
nonduplicated = []
for i in duplicated:
if i not in nonduplicated:
nonduplicated.append(i)
print(nonduplicated) #[1, 2, 3, 4, 5, 6]
2. set을 사용해서 중복 제거하기
- set 자료구조는 중복을 허용하지 않는다는 성질을 활용해서 중복을 제거
- 데이터 타입을 리스트로 다시 변경하기 위해 list()로 형변환
duplicated = [1,1,2,3,4,4,5,6]
nonduplicated = set(duplicated) #{1, 2, 3, 4, 5, 6}
print(list(nonduplicated)) #[1, 2, 3, 4, 5, 6]
3. dictionary를 사용해서 중복 제거하기
- dictionary자료구조 또한 set자료구조와 비슷하게 중복을 허용하지 않는다는 성질을 활용해서 중복 제거
- dictionary 자료구조는 다른 자료구조와 달리 key-value형태로 되어있는데 key가 중복을 허용하지 않기 때문에 이를 활용해서 딕셔너리의 메소드 중 dict.fromkeys(iterable)를 활용하면 iterable한 데이터를 key 값으로 가져 중복을 제거
- 데이터 타입을 리스트로 다시 변경하기 위해 list()로 형변환
duplicated = [1,1,2,3,4,4,5,6]
nonduplicated = dict.fromkeys(duplicated) #{1: None, 2: None, 3: None, 4: None, 5: None, 6: None}
print(list(nonduplicated)) #[1, 2, 3, 4, 5, 6]