Pythonで多重の入れ子辞書の値を検索する方法は何ですか?
多層の入れ子辞書の値を検索するには、再帰的な方法を使用できます。以下に、サンプルコードを示します。
def find_value(nested_dict, keys):
if len(keys) == 1:
return nested_dict.get(keys[0])
else:
key = keys[0]
if key in nested_dict:
return find_value(nested_dict[key], keys[1:])
else:
return None
# 示例字典
example_dict = {
'a': {
'b': {
'c': 123
}
}
}
# 查找值
keys = ['a', 'b', 'c']
value = find_value(example_dict, keys)
print(value) # 输出: 123
この例では、find_value関数は2つのパラメータ、nested_dict(ネストされた辞書)とkeys(検索するキーのリスト)を受け取ります。関数はまず、keysリストの長さを検討し、要素が1つしかない場合は直接その値を返します。keysリストの長さが1より大きい場合、最初のキーを現在のレベルのキーとして取得し、nested_dict内でそのキーに対応する値を探します。キーが存在する場合、再帰的にfind_value関数を呼び出して次のレベルの値を続けて検索します。キーが存在しない場合は、見つからなかったことを示すNoneを返します。
find_value 関数を使って、example_dict ディクショナリと検索キー [‘a’, ‘b’, ‘c’] を指定した場合、戻り値は123になります。