>  기사  >  백엔드 개발  >  Python에서 목록 값을 사용하여 사전을 반전하는 방법은 무엇입니까?

Python에서 목록 값을 사용하여 사전을 반전하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 04:42:28842검색

How to invert a dictionary with list values in Python?

목록 값이 있는 사전 반전

현재 작업은 값이 목록인 사전을 반전하여 각 값이 있는 사전으로 변환하는 것입니다. 원래 사전의 값은 원래 키 목록을 해당 값으로 사용하여 새 사전의 키가 됩니다.

다음 인덱스 사전이 주어지면:

index = {
    'Testfil2.txt': ['nisse', 'hue', 'abe', 'pind'],
    'Testfil1.txt': ['hue', 'abe', 'tosse', 'svend']}

원하는 역사전은 다음과 같습니다.

inverse = {
    'nisse': ['Testfil2.txt'],
    'hue': ['Testfil2.txt', 'Testfil1.txt'],
    'abe': ['Testfil2.txt', 'Testfil1.txt'],
    'pind': ['Testfil2.txt'], 
    'tosse': ['Testfil1.txt'],
    'svend': ['Testfil1.txt']}

다음은 목록을 값으로 사용하는 문제를 해결하는 Python 솔루션입니다.

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

이 솔루션은 원본 사전을 반복하여 각 키-값 쌍을 추출하고 그 요소. 새로 생성된 역 사전의 setdefault() 메서드를 사용하여 값(목록의 요소)이 키로 존재하는지 확인합니다. 그렇지 않은 경우 빈 목록을 값으로 사용하여 새 키를 생성합니다. 키가 이미 존재하는 경우 해당 원래 키를 기존 목록에 추가합니다.

원래 사전의 모든 요소를 ​​반복함으로써 이 솔루션은 중복 값이 ​​병합되고 원래 키가 값으로 포함된 역 사전을 성공적으로 생성합니다. .

위 내용은 Python에서 목록 값을 사용하여 사전을 반전하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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