> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬의 목록에서 중복 요소를 어떻게 제거합니까?

파이썬의 목록에서 중복 요소를 어떻게 제거합니까?

百草
풀어 주다: 2025-03-19 12:02:24
원래의
179명이 탐색했습니다.

파이썬의 목록에서 중복 요소를 어떻게 제거합니까?

파이썬의 목록에서 중복 요소를 제거하려면 여러 가지 방법을 사용할 수 있습니다. 일반적이고 간단한 접근 방식 중 하나는 목록을 세트로 변환 한 다음 목록으로 돌아가는 것입니다. 당신이 할 수있는 방법은 다음과 같습니다.

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list)) print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
로그인 후 복사

그러나이 방법은 원래의 요소 순서를 보존하지 않습니다. 질서 보존이 문제가되지 않는 경우, 이것은 간단하고 효과적인 방법입니다.

파이썬의 목록에서 중복을 제거하는 가장 효율적인 방법은 무엇입니까?

시간 복잡성 측면에서 파이썬의 목록에서 중복을 제거하는 가장 효율적인 방법은 세트를 사용하는 것입니다. Python의 세트는 멤버십을 추가하고 확인하기위한 O (1)의 평균 시간 복잡성을 갖습니다. set()list() 사용하여 위에서 설명한 방법은 다음과 같습니다.

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
로그인 후 복사
로그인 후 복사

이 접근법은 효율적이지만 요소의 순서를 보존하지는 않습니다. 순서를 보존하는 것이 중요하다면, 다른 접근 방식을 사용해야하며, 이는 효율적이지 만 여전히 합리적으로 빠를 수 있습니다.

파이썬의 목록에서 중복을 제거하면서 요소의 순서를 보존 할 수 있습니까?

예, Python의 목록에서 중복을 제거하면서 요소의 순서를 보존 할 수 있습니다. 이를 달성하는 한 가지 방법은 보인 요소를 추적하기 위해 세트와 함께 목록 이해력을 사용하는 것입니다.

 <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))] print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
로그인 후 복사

이 메소드는 목록을 한 번 반복하여 seen 세트에 요소를 확인하고 추가합니다. 요소가 이전에 보이지 않으면 새 목록에 포함되어 원래 순서가 유지되도록합니다.

Python에서 목록을 제거하는 다른 접근법과 그 트레이드 오프는 무엇입니까?

Python에서 목록을 제거하기위한 몇 가지 접근법이 있으며, 각각 효율성, 주문 보존 및 가독성 측면에서 자체 트레이드 오프가 있습니다. 몇 가지 일반적인 방법은 다음과 같습니다.

  1. 세트 사용 (주문 보존 없음) :

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
    로그인 후 복사
    로그인 후 복사

    트레이드 오프 : O (n) 시간 복잡성으로 인해 효율적이지만 원래의 요소 순서는 보존되지 않습니다.

  2. 세트와 함께 이해력을 나열합니다 (보존) :

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))]</code>
    로그인 후 복사

    트레이드 오프 : 요소의 순서를 유지하고 O (n) 시간 복잡성으로 여전히 비교적 효율적이지만 설정 방법보다 읽기 쉽고 약간 덜 효율적일 수 있습니다.

  3. dict.fromkeys() 사용 사용 (Python 3.7에서 보존) :

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(dict.fromkeys(original_list))</code>
    로그인 후 복사

    트레이드 오프 : Python 3.7에서 주문을 보존합니다. 효율적이고 간결하지만 주문 보존은 최신 Python 버전으로 만 보장됩니다.

  4. 루프 사용 (주문 보존) :

     <code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = [] for item in original_list: if item not in deduplicated_list: deduplicated_list.append(item)</code>
    로그인 후 복사

    트레이드 오프 : 순서를 보존하고 이해하기가 간단하지만 반복되는 회원 테스트로 인해 다른 방법, 특히 큰 목록의 경우 덜 효율적일 수 있습니다.

각 방법에는 효율성, 주문 보존 또는 코드 가독성의 우선 순위를 정하는지 여부에 따라 사용 사례가 있습니다.

위 내용은 파이썬의 목록에서 중복 요소를 어떻게 제거합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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