사전 목록으로 작업할 때 동일한 키를 기반으로 중복을 제거해야 할 수도 있습니다. -값 쌍. 이 기사에서는 Python의 내장 함수와 사전 순서를 유지하는 보다 효율적인 접근 방식을 사용하여 이를 달성하는 방법에 대한 자세한 지침을 제공합니다.
한 가지 접근 방식은 각 사전을 해당 항목의 튜플입니다. 튜플은 해시 가능하므로 중복된 사전을 식별하기 위해 세트의 키로 사용할 수 있습니다. 다음 Python 코드는 이 방법을 보여줍니다.
new_list = [dict(t) for t in {tuple(d.items()) for d in old_list}]
이 코드는 원래 사전 목록(old_list)을 반복하고 각 사전의 항목을 나타내는 튜플 세트를 생성합니다. 세트는 중복 항목을 자동으로 제거합니다. 그런 다음 결과 세트는 사전 이해를 사용하여 사전 목록으로 다시 변환됩니다.
그러나 사전의 순서가 중요한 경우 위의 방법은 그렇지 않습니다. 그것을 보존하십시오. 이를 달성하려면 다음과 같은 대체 접근 방식이 권장됩니다.
seen = set() new_list = [] for d in old_list: t = tuple(sorted(d.items())) if t not in seen: seen.add(t) new_list.append(d)
이 코드는 각 사전에서 주문된 항목을 나타내는 튜플 세트를 생성합니다. sorted() 함수는 항목이 일관된 순서로 유지되도록 합니다. 그런 다음 세트는 중복된 튜플을 제외하는 역할을 하며 결과 목록은 원래 사전 순서를 유지합니다.
사전에 중첩 사전이 포함된 경우 제공된 코드를 약간 수정하여 중첩된 구조. 다음 코드 조각은 이를 보여줍니다.
def flatten_dict(d): new_d = {} for k, v in d.items(): if isinstance(v, dict): v = flatten_dict(v) for k2, v2 in v.items(): new_d[f'{k}.{k2}'] = v2 else: new_d[k] = v return new_d new_list = [dict(t) for t in {tuple(flatten_dict(d).items()) for d in old_list}]
이 기사에서는 Python의 목록에서 중복 사전을 제거하는 두 가지 방법, 즉 중복 제거를 위한 세트를 사용하고 원본을 보존하는 방법을 살펴보았습니다. 맞춤 로직으로 주문하세요. 방법 선택은 작업의 특정 요구 사항에 따라 다릅니다.
위 내용은 순서를 유지하면서 Python의 목록에서 중복 사전을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!