リスト値を使用した辞書の反転: 解決策
この記事では、リスト値を使用した辞書を反転するという課題について説明します。キーがファイル名で、値がそれらのファイルに含まれる単語のリストであるインデックス辞書があるとすると、単語がキーで値がファイル名のリストである逆引き辞書を作成することを目指します。
提供されている反転関数 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 中国語 Web サイトの他の関連記事を参照してください。