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になります。

bannerAds