본문 바로가기
Algorithm

[Python] 파이썬 리스트 중복 제거

by 가영리 2023. 8. 30.
728x90

for문을 이용한 리스트 중복 제거

 

1. 중복된 원소가 제거된 리스트를 담을 새로운 리스트 result 생성

2. 중복을 제거하려는 리스트를 for문으로 돌면서 result에 있는 값인지 확인

3. 존재하는 값인 경우 pass 아닌 경우는 result 리스트에 추가

 

array = [10, 7, 8, 9, 3, 10, 7, 1]
result = []

for i in array:
	if i not in result:
    	result.append(i)

print(result)

 

 

set 자료 구조를 이용한 리스트 중복 제거

 

set 자료구조의 가장 큰 특징은 중복이 불가하다는 것이다. 이 성질을 이용해 리스트의 중복 제거를 할 수 있다.

 

1. 리스트를 set 자료구조로 변환(이 과정에서 중복제거가 됨)

2. set 자료구조로 변환된 리스트를 다시 리스트로 변환

 

array = [10, 7, 8, 9, 3, 10, 7, 1]

array = list(set(array))

print(array)

set 자료구조를 이용하는 경우 자동으로 오름차순으로 정렬되므로 알고리즘 문제를 풀 때 유용하게 사용할 수 있다. 단, 숫자에 한하여 정렬되므로 이점을 주의하길 바랍니다.

 

 

dictionary를 이용한 리스트 중복 제거

 

딕셔너리는 key, value로 이루어진 자료구조이다.

이때 key값은 중복이 불가하다. 이 성질을 이용해 리스트의 중복 제거를 할 수 있다.

 

dict.fromkeys(iterable)의 함수는 iterable 데이터를 key값으로 갖는 딕셔너리 데이터를 만들어준다.

 

array = [10, 7, 8, 9, 3, 10, 7, 1]

array = list(dict.fromkeys(array))

print(array)