"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 목록 값을 사용하여 사전을 어떻게 반전할 수 있습니까?

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

2024-11-07에 게시됨
검색:950

How Can You Invert a Dictionary with List Values?

목록 값으로 사전 반전: 솔루션

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

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

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

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

inverse = {}
for k,v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)

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

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3