> 백엔드 개발 > 파이썬 튜토리얼 > 순서를 유지하거나 무시하면서 Python 목록에서 중복 사전을 어떻게 제거할 수 있습니까?

순서를 유지하거나 무시하면서 Python 목록에서 중복 사전을 어떻게 제거할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-11-28 00:21:10
원래의
169명이 탐색했습니다.

How Can I Remove Duplicate Dictionaries from a Python List While Preserving or Ignoring Order?

Python의 목록에서 중복 사전 제거

사전 목록이 주어지면 목표는 동일한 키를 공유하는 모든 사전을 제거하는 것입니다. 값 쌍. 예를 들어, 목록 [{'a': 123}, {'b': 123}, {'a': 123}]을 [{'a': 123}, {'b': 123}]로 변환하면 이 목표를 달성하세요.

이를 달성하려면 간단하면서도 강력한 기술을 사용할 수 있습니다.

[dict(t) for t in {tuple(d.items()) for d in l}]
로그인 후 복사

이 접근 방식은 세 가지 개별 단계:

  1. 각 사전을 튜플로 변환합니다. 여기서 튜플은 사전의 키-값 쌍을 저장합니다.
  2. 튜플 목록을 세트로 변환하여 중복 항목을 효과적으로 제거합니다. 세트는 동일한 값의 여러 인스턴스를 보유할 수 없습니다.
  3. dict()를 사용하여 튜플에서 사전을 재구성합니다. function.

코드 조각의 변수는 다음을 나타냅니다.

  • l: 사전의 원래 목록
  • d: 사전 내의 개별 사전 list
  • t: 해당 사전의 키-값을 나타내는 튜플 쌍

사전의 원래 순서를 유지하는 것이 중요한 경우 다음과 같이 수정된 접근 방식을 활용할 수 있습니다.

seen = set()
new_l = []
for d in l:
    t = tuple(d.items())
    if t not in seen:
        seen.add(t)
        new_l.append(d)
로그인 후 복사

이 코드에는 보이는 세트를 유지하는 추가 단계가 포함되어 있습니다. 어떤 튜플(및 사전)이 이미 발견되었는지 추적합니다. 보이는 집합에서 튜플이 발견되지 않으면 집합에 추가되고, 해당 사전은 new_l 목록에 추가됩니다.

동등성(==)을 사용하여 사전을 직접 비교한다는 점에 유의하는 것이 중요합니다. 사전이 다른 방식으로 수정된 경우 항상 원하는 결과를 얻지 못할 수도 있습니다. 키-값 쌍의 순서가 중요한 경우 튜플을 생성하기 전에 사전의 항목을 정렬하는 것이 좋습니다.

위 내용은 순서를 유지하거나 무시하면서 Python 목록에서 중복 사전을 어떻게 제거할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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