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

순서를 유지하면서 Python 목록에서 중복 항목을 효율적으로 제거하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-20 12:42:19585검색

How to Efficiently Remove Duplicates from a Python List While Maintaining Order?

목록에서 중복 항목 제거

Python에서는 목록에서 중복 항목을 확인하고 중복 항목 없이 새 목록을 반환하는 것이 일반적인 작업입니다. 이를 수행하는 데는 여러 가지 접근 방식이 있습니다.

세트 사용

세트는 순서가 지정되지 않은 개별 개체의 컬렉션입니다. 중복 항목을 제거하는 효율적인 방법을 제공합니다. 목록에서 집합을 만들려면 간단히 set() 함수에 전달하면 됩니다. 다시 목록으로 변환하려면 list() 함수를 사용하세요. 그러나 이 방법은 요소의 원래 순서를 유지하지 않습니다.

t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8]
list(set(t))  # [1, 2, 3, 5, 6, 7, 8]

순서 유지

원래 순서를 유지하는 것이 중요한 경우 collections.OrderedDict 모듈을 사용할 수 있습니다. OrderedDict는 항목의 삽입 순서를 유지합니다. 목록을 OrderedDict로 변환한 다음 다시 목록으로 변환하여 순서를 유지합니다.

from collections import OrderedDict
list(OrderedDict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]

Python 3.7에서 사전 사용

Python 3.7 이상에서는 일반 사전 또한 삽입 순서를 유지합니다. 따라서 다음 접근 방식을 사용할 수 있습니다.

list(dict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]

고려 사항

이러한 모든 방법을 사용하려면 목록의 항목이 해시 가능(즉, 변경 불가능)해야 합니다. . 항목이 해시 가능하지 않은 경우(예: 목록) 중첩 루프 비교를 포함하는 더 느린 접근 방식이 필요합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.