> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 순서를 유지하면서 목록에서 중복 요소를 제거하는 방법은 무엇입니까?

Python에서 순서를 유지하면서 목록에서 중복 요소를 제거하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-20 16:19:10
원래의
389명이 탐색했습니다.

How to Remove Duplicate Elements from a List While Preserving Order in Python?

목록의 순서를 유지하면서 중복 요소 제거

데이터 조작에서 흔히 발생하는 문제 중 하나는 순서를 유지하면서 목록에서 중복 요소를 제거하는 것입니다. 원래 주문. 중복을 제거하기 위해 세트를 사용하는 것은 효율적인 접근 방식입니다. 그러나 요소의 순서는 변경됩니다.

효율적인 중복 제거를 위한 내장 또는 Python 관용어

이 문제를 해결하기 위해 다양한 내장 및 Python 관용구가 사용됩니다. 순서를 유지하면서 중복 제거를 수행하는 데 사용할 수 있습니다. 가장 빠른 방법 중 하나는 다음과 같습니다.

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이라는 집합을 만드는 것이 포함됩니다. 반복적인 조회를 방지하여 성능을 최적화하기 위해 visible_add 변수가 visible 세트의 add 메소드에 할당됩니다.

원래 시퀀스(seq)의 요소가 순회됩니다. 요소가 표시된 세트에 아직 없으면 추가되고 결과 목록에 포함됩니다. 그렇지 않으면 요소는 중복된 것으로 간주되어 건너뜁니다.

대체 접근 방식

  • 순서 집합(예: collections.OrderedDict)을 사용하면 O(1 ) 삽입, 삭제, 멤버 확인 작업을 수행하여 순서를 보장합니다.
  • 조합 사용 zip 및 itertools.groupby는 연속된 중복 요소를 그룹화하고 각 그룹의 첫 번째 인스턴스만 선택하는 또 다른 Python 방식입니다.

이러한 기술을 이해하면 원본을 유지하면서 목록에서 중복 항목을 효과적으로 제거할 수 있습니다. 요소의 순서를 조정하여 정확성을 저하시키지 않으면서 효율적인 데이터 조작을 달성합니다.

위 내용은 Python에서 순서를 유지하면서 목록에서 중복 요소를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿