Python에서 List 반복 항목을 제거하는 5가지 방법
방법 1: 소박한 방법
이 방식은 전체list를 훑어보는 토대에서 첫 번째로 나타난 요소를 새로운 목록에 추가하는 것이다.
예제 코드:
# Python 3 code to demonstrate
# removing duplicated from list
# using naive methods
# initializing list
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("The original list is : " + str(test_list))
# using naive method
# to remove duplicated
# from list
res = []
for i in test_list:
if i not in res:
res.append(i)
# printing list after removal
print ("The list after removing duplicates : " + str(res))
→ 출력 결과:The original list is : [1, 3, 5, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]
방법 2: 목록 해석식
이런 방식은 사실상 첫 번째 방법의 간소화판으로 목록 해석식을 이용하여 한 줄의 코드를 사용하면 위의 순환 방식을 대체할 수 있다.
예제 코드:
# Python 3 code to demonstrate
# removing duplicated from list
# using list comprehension
# initializing list
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("The original list is : " + str(test_list))
# using list comprehension
# to remove duplicated
# from list
res = []
[res.append(x) for x in test_list if x not in res]
# printing list after removal
print ("The list after removing duplicates : " + str(res))
→ 출력 결과:The original list is : [1, 3, 5, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]
메서드 3: set 사용()
이런 방식은 목록의 중복 요소를 제거하는 가장 유행하는 방법이다.그러나 이 방법의 가장 큰 단점은 사용한 후 목록에 있는 원소의 순서가 원래와 일치하지 않는다는 것이다.
예제 코드:
# Python 3 code to demonstrate
# removing duplicated from list
# using set()
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " + str(test_list))
# using set()
# to remove duplicated
# from list
test_list = list(set(test_list))
# printing list after removal
# distorted ordering
print ("The list after removing duplicates : " + str(test_list))
→ 출력 결과:The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]
방법 4: 목록 해석식 + enumerate ()
이 방법은 목록 해석식을 바탕으로 매거를 이용하여 중복 요소를 제거하는 것이다.요소가 목록에 있는지 확인하여 생략합니다.이런 방법은 목록의 원소 순서가 바뀌지 않도록 유지할 수 있다.
예제 코드:
# Python 3 code to demonstrate
# removing duplicated from list
# using list comprehension + enumerate()
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " + str(test_list))
# using list comprehension + enumerate()
# to remove duplicated
# from list
res = [i for n, i in enumerate(test_list) if i not in test_list[:n]]
# printing list after removal
print ("The list after removing duplicates : " + str(res))
→ 출력 결과:The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 5, 3, 6]
방법 5: 컬렉션을 이용합니다.OrderedDict.fromkeys()
이것은 특수 임무를 완성하는 데 가장 빠른 방법이다.그것은 먼저 목록의 중복 항목을 제거하고 사전으로 되돌려주고 목록으로 변환합니다.이런 방법은 문자열도 처리할 수 있다.
예제 코드:
# Python 3 code to demonstrate
# removing duplicated from list
# using collections.OrderedDict.fromkeys()
from collections import OrderedDict
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " + str(test_list))
# using collections.OrderedDict.fromkeys()
# to remove duplicated
# from list
res = list(OrderedDict.fromkeys(test_list))
# printing list after removal
print ("The list after removing duplicates : " + str(res))
→ 출력 결과:The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 5, 3, 6]
메서드 6: 중첩 목록의 반복 요소 처리
다차원 목록 (목록 중첩) 의 중복 요소를 제거합니다.여기에서 목록에 있는 원소(또는 목록)가 같은 원소를 가지고 있다고 가정합니다. (반드시 순서가 같지는 않음) 모두 중복 원소로 간주됩니다.그러면 다음은 set () +sorted () 방법으로 작업을 완성합니다.
예제 코드:
# Python3 code to demonstrate
# removing duplicate sublist
# using set() + sorted()
# initializing list
test_list = [[1, 0, -1], [-1, 0, 1], [-1, 0, 1],
[1, 2, 3], [3, 4, 1]]
# printing original list
print("The original list : " + str(test_list))
# using set() + sorted()
# removing duplicate sublist
res = list(set(tuple(sorted(sub)) for sub in test_list))
# print result
print("The list after duplicate removal : " + str(res))
→ 출력 결과:The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]
set () + map () +sorted () 를 사용할 수도 있습니다.
예제 코드:
# Python3 code to demonstrate
# removing duplicate sublist
# using set() + map() + sorted()
# initializing list
test_list = [[1, 0, -1], [-1, 0, 1], [-1, 0, 1],
[1, 2, 3], [3, 4, 1]]
# printing original list
print("The original list : " + str(test_list))
# using set() + map() + sorted()
# removing duplicate sublist
res = list(set(map(lambda i: tuple(sorted(i)), test_list)))
# print result
print("The list after duplicate removal : " + str(res))
→ 출력 결과:The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]
Python에서 List 중복 항목을 제거하는 다섯 가지 방법에 대한 이 글을 소개합니다. 더 많은 Python 중복 항목 제거 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.