Python의 목록에서 중복 제거
List in Python은 특정 순서로 데이터를 저장하는 데 사용되는 데이터 구조입니다. 목록은 int, float, string, 다른 목록 등과 같은 여러 유형의 데이터를 저장할 수 있습니다. 목록은 변경 가능합니다. 즉, 생성 된 값은 나중에 변경할 수 있습니다. 대괄호[]
로 표시됩니다.
myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
print(myList)
출력:
[2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
아래와 같이 for
루프를 사용하여 위 목록에서 중복 요소를 제거 할 수 있습니다.
myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
resultantList = []
for element in myList:
if element not in resultantList:
resultantList.append(element)
print(resultantList)
출력:
[2, 1, 3, 0, 6, 7, 4, 8]
이 정도의 코드를 작성하고 싶지 않다면 Python의 목록에서 중복 요소를 제거하는 가장 일반적인 두 가지 방법이 있습니다.
- 중복 된 요소를 제거한 후 목록 내 요소의 순서를 유지하지 않으려면
Set
데이터 구조를 사용할 수 있습니다. - 중복 된 요소를 제거한 후 목록 내 요소의 순서를 유지하려면
OrderedDict
라는 것을 사용할 수 있습니다.
Python에서set()
함수를 사용하여 목록에서 중복 제거
목록에서 중복 항목을 제거하려면 Set
이라는 다른 데이터 구조를 사용할 수 있습니다. 집합은 고유 한 값만 포함하는 정렬되지 않은 데이터 유형입니다. 집합이 값을 저장하는 순서는 집합에 요소를 삽입했을 수있는 순서와 다릅니다. 집합은 중괄호{}
를 사용하여 표시됩니다.
따라서 세트 내에 저장된 요소를 인쇄 할 때마다 출력 순서가 달라집니다. 이것이 순서가 지정되지 않았기 때문에 집합에서 인덱싱을 수행 할 수없는 이유입니다.
mySet = {80, 10, 50, 18, 3, 50, 8, 18, 9, 8}
print(mySet)
출력:
{3, 8, 9, 10, 80, 18, 50}
요소를 인쇄 한 후 요소의 순서가 어떻게 변경되었는지 확인하십시오.
세트에서 중복은 허용되지 않습니다. 즉, 동일한 요소가 여러 번 있으면 세트는이를 하나의 요소로 간주합니다. 이것이 우리가 Python의 목록에서 중복 요소를 제거하기 위해 집합을 사용하는 이유입니다.
original_list = [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
print("Original List is: ",original_list)
convert_list_to_set = set(original_list)
print("Set is: ",convert_list_to_set)
new_list = list(convert_list_to_set)
print("Resultant List is: ",new_list)
original_list = list(convert_list_to_set)
print("Removed duplicates from original list: ",original_list)
출력:
Original List is: [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
Set is: {3, 8, 9, 10, 80, 18, 50}
Resultant List is: [3, 8, 9, 10, 80, 18, 50]
Removed duplicates from original list: [3, 8, 9, 10, 80, 18, 50]
set()
함수를 적용하여 목록을 집합으로 변환합니다. 그런 다음list()
함수를 적용하여 중복을 제거한 변환 된 집합을 목록으로 변환합니다.
Python에서OrderDict
를 사용하여 목록에서 중복 제거 및 순서 유지
집합을 사용하여 중복 된 요소를 제거 할 때의 문제점은 특정 순서로 요소를 저장하지 않는다는 것입니다. 따라서 요소가 결과 목록에 저장되는 순서, 즉 중복을 제거한 후 생성 한 목록에 신경 쓰지 않는다면 Set
데이터 구조를 사용할 수 있습니다.
그러나 중복을 제거한 후 목록 내 요소의 순서를 유지하려면 Python에서OrderedDict
를 사용할 수 있습니다. OrderDict
는 요소가 목록에 삽입 된 순서를 유지합니다. OrderDict
을 사용하기 위해서는 먼저 Python의collections
모듈에서from collections import OrderedDict
를 가져올 필요가 있습니다.
from collections import OrderedDict
myList = [2, 1, 2, 3, 0, 6, 7, 6, 8, 0, 4, 8]
final_list = list(OrderedDict.fromkeys(myList))
print(final_list)
출력:
[2, 1, 3, 0, 6, 7, 8, 4]