ホームページ  >  記事  >  バックエンド開発  >  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。