Python에서 List 반복 항목을 제거하는 5가지 방법

본고는Python 목록(list)에 존재할 수 있는 중복 항목을 제거하는 몇 가지 항목을 열거합니다. 이것은 많은 응용 프로그램에서 발생할 수 있는 요구입니다. 프로그래머로서 사용할 때 효과적인 프로그램을 쓸 수 있도록 몇 가지 방법을 가장 잘 알고 있습니다.

방법 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 중복 항목 제거 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기