파이썬 목록에서 중복을 찾는 방법
이 자습서에서는 Python의 목록에서 중복 항목을 찾는 방법을 보여줍니다.
set()
함수를 사용하여 Python 목록에서 중복 제거
Python set()
은 목록을 집합으로 변환하는 함수입니다. 세트 및 목록의 설명에 따라 목록을 세트로 변환하는 것은 목록의 모든 중복 항목을 제거하는 것을 의미합니다.
그러나 우리가 원하는 것은 목록에서 중복 된 항목을 검색하는 것입니다. 이를 위해 여전히set()
함수를 사용하지만 목록에 둘 이상의 항목이있는 항목 만 포함합니다. 즉, 중복 항목이있는 항목임을 의미합니다.
목록에서 중복을 찾아서 세트로 저장하는 함수를 선언하십시오.
def listToSet(listNums):
set([num for num in listNums if listNums.count(x) > 1])
결과를 집합 대신 목록으로 유지하려는 경우 또 다른 방법은set()
및add()
를 사용하여 목록 내에서 중복을 찾고 반환하는 동안 목록으로 다시 변환하는 것입니다.
def list_duplicates(listNums):
once = set()
seenOnce = once.add
twice = set(num for num in listNums if num in once or seenOnce(x))
return list(twice)
이 함수는 숫자가 처음 나타나는 경우 once
에 항목을 추가하고 설정된 once
내에 존재하지 않습니다.
하나는 세트이고 다른 하나는 목록이지만 두 함수 모두 동일한 출력을 반환합니다. 결과는listNums
의 모든 중복 항목을 출력합니다.
[1, 3, 5, 8]
iteration_utils
모듈을 사용하여 Python 목록에서 중복 찾기
iteration_utils
에는 사전 정의 된 함수 내에서 중복을 검색 할 수있는 두 가지 함수 인duplicates
및unique_everseen
이 있습니다.
위와 동일한 목록 정의listNums
를 사용할 것입니다.
iteration_utils
에서duplicates
를 가져 와서listNums
내의 모든 중복 목록을 반환하는 데 사용합니다.
from iteration_utils import duplicates
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDups(listNums):
return list(duplicates(listNums))
위 함수의 출력은listNums
내의 모든 중복 항목 목록을 반환합니다.
[1, 1, 3, 3, 5, 5, 5, 5, 8, 8]
그러나 목록에는 중복 항목의 반복도 포함됩니다. 즉, 중복 된 항목의 모든 인스턴스를 반환합니다.
-여기에서unique_everseen
이 들어옵니다.이 함수는duplicates()
가 반환하는 모든 중복 인스턴스를 제거하기 위해 목록을 처리합니다.
from iteration_utils import duplicates
from iteration_utils import unique_everseen
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDupsUnique(listNums):
return list(unique_everseen(duplicates(listNums)))
이 함수는 다음을 반환합니다.
[1, 3, 5, 8]
요약하면 Python의 목록 내에서 중복을 찾는 두 가지 쉬운 솔루션이 있습니다. 첫 번째는 파이썬에서set()
및 기타 집합의 유틸리티 함수를 사용하여 중복을 찾아 다른 변수에 저장하는 것입니다. 또 다른 하나는duplicates
와unique_everseen
을 사용하는iteration_utils
모듈로, 어느 정도 동일한 작업을 수행하고 동일한 출력을 생성합니다.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn