Pythonでは、辞書(dictionary)のキーと値を反転させることができます。これは、キーと値のペアを逆にした新しい辞書を作成することを意味します。
基本的な方法
Pythonで辞書を反転する最も基本的な方法は、辞書内包表記を使用することです。以下にそのコードを示します。
my_map = {'a': 1, 'b': 2}
inv_map = {v: k for k, v in my_map.items()}
このコードでは、my_map.items()
を使用して辞書の各項目(キーと値のペア)を取得し、それらを反転して新しい辞書inv_map
を作成しています。
値が一意でない場合
上記の方法は、元の辞書のすべての値が一意である場合にのみ機能します。値が一意でない場合(つまり、2つ以上のキーが同じ値を持つ場合)、一部のエントリが失われます。
そのような場合には、以下のように値をキーのリストにマッピングする辞書を作成できます。
my_map = {'a': 1, 'b': 2, 'c': 1}
inv_map = {}
for k, v in my_map.items():
inv_map[v] = inv_map.get(v, []) + [k]
このコードでは、inv_map.get(v, [])
を使用して、既存のキーのリストを取得または新しいリストを作成し、新しいキーをそのリストに追加しています。
以上がPythonで辞書を反転する基本的な方法です。これらのテクニックを使えば、辞書のキーと値を効率的に反転させることができます。.