목록에서 중복 항목을 제거하는 동안 순서 유지
원래 순서를 유지하면서 목록에서 중복 요소를 제거하는 것은 어려울 수 있습니다. 중복을 제거하기 위한 세트는 일반적으로 초기 시퀀스를 방해합니다.
이 문제를 해결하기 위해 Python 커뮤니티는 다양한 개발을 수행했습니다. 내장된 관용적 솔루션. 가장 효율적인 옵션 중 하나는 집합을 활용하여 중복 항목을 효율적으로 감지하고 제거하는 f7이라는 기능입니다.
def f7(seq): seen = set() seen_add = seen.add return [x for x in seq if not (x in seen or seen_add(x))]
이 함수는 visible이라는 집합을 사용하여 중복 항목을 신속하게 식별하고 제거합니다. 비밀 최적화는 see.add를 지역 변수로 see_add에 할당하는 데 있습니다. 이렇게 하면 Python이 반복할 때마다 visible.add를 동적으로 해결하지 못하게 되며, 이로 인해 visible.add가 변경될 가능성이 있어 성능 저하가 발생할 수 있습니다.
ActiveState의 정렬된 집합 데이터 구조와 같은 다른 대안은 다음과 같습니다. 동일한 데이터 세트에서 중복 제거 작업을 자주 수행할 것으로 예상되는 경우에도 사용할 수 있습니다.
제공된 코드에서 visible.add()는 지속적으로 None을 반환하므로 집합 업데이트를 트리거하는 방법으로 논리 또는 연산자를 사용합니다.
위 내용은 Python에서 순서를 유지하면서 목록에서 중복 항목을 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!