リスト値を含む辞書の反転
当面のタスクは、値がリストである辞書を反転し、それぞれの値が一致する辞書に変換することです。元の辞書の値は、元のキーのリストを値として持つ、新しい辞書のキーになります。
次のインデックス辞書があるとします。
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 中国語 Web サイトの他の関連記事を参照してください。