>  기사  >  백엔드 개발  >  목록 값을 사용하여 사전을 어떻게 반전할 수 있습니까?

목록 값을 사용하여 사전을 어떻게 반전할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-29 04:23:02770검색

How Can You Invert a Dictionary with List Values?

목록 값을 사용하여 사전 반전: 솔루션

이 문서에서는 목록 값을 사용하여 사전을 반전시키는 문제를 살펴봅니다. 키가 파일 이름이고 값이 해당 파일에 나타나는 단어 목록인 인덱스 사전이 주어지면 단어가 키이고 값이 파일 이름 목록인 역 사전을 만드는 것이 목표입니다.

제공되는 반전 함수 invert_dict, "TypeError: unhashable type: 'list'"와 함께 실패하므로 목록 값을 키로 사용하는 사전에는 적용할 수 없습니다. 이러한 제한은 사전의 키가 해시 가능해야 하고 목록은 해시 가능하지 않다는 사실에서 비롯됩니다.

이 장애물을 극복하기 위해 원래 사전을 반복하고 setdefault를 사용하여 새 사전을 생성하는 사용자 지정 접근 방식을 활용할 수 있습니다. . 특히 원래 사전에 있는 각 키의 값 목록을 반복하고 해당 키를 새 역 사전에 있는 해당 단어의 값으로 추가합니다.

다음은 이 접근 방식의 구현 예입니다.

<code class="python">inverse = {}
for k,v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)</code>

이 솔루션은 반전된 사전에 키가 없는 경우 setdefault 메서드를 사용하여 새 목록을 생성하거나 키가 이미 있는 경우 기존 목록에 추가하여 원래 사전의 목록 값을 처리합니다.

결과적으로 단어가 키이고 값이 파일 이름 목록인 역사전을 얻습니다.

위 내용은 목록 값을 사용하여 사전을 어떻게 반전할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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