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]