Pythonでは、辞書型のオブジェクトのキーとバリューを入れ替えることができます。これを「逆引き」と呼びます。逆引きを行うには主に2つの方法があります。
- 辞書のデータに順番にアクセスし、値を探索する。
- キーと値を逆転させた、新しい辞書を作成する。
逆引きが1回限りの場合、1番が効率的です。繰り返し逆引きする場合、2番が効率的です。
以下に具体的なコードを示します。
# サンプルコード
d = {1:'one', 2:'two', 3:'three'}
print(d)
def inverse_lookup(d, x):
for k,v in d.items():
if x == v:
return k
print(inverse_lookup(d, 'two')) # 値からキーを探索
print(inverse_lookup(d, 'four')) # 存在しない値からキーを探索
def inverse_dict(d):
return {v:k for k,v in d.items()} # キーと値を逆転させた新しい辞書を作成
print(inverse_dict(d))
このコードでは、まず3つの要素を持つ辞書を定義しています。次に、関数inverse_lookupを定義します。この関数は辞書と、検索対象の値を引数に取り、辞書のキーと値に順番にアクセスし、値がマッチした場合に対応するキーを返却します。
また、関数inverse_dictを定義します。この関数はキーと値を逆転させた新しい辞書を返却します。
以上がPythonで辞書型を逆引きする方法になります。この方法を覚えておくと、Pythonプログラミングがより便利になります。