Python получить / установить значение dict of dicts по ключу в переменной - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть диктат в Python, он может быть глубоким, а не только 2 уровня.

data = {
    0: {
        1: {
            2: "Yes"
        },
        3: {
            4: "No"
        }
    },
}

Мне нужно получить и установить данные, но ключ является динамическим и хранится в списке

key_to_get = [0,1,2]

print(data.get(key_to_get))

Следует напечатать Yes

Идеи

1 Ответ

0 голосов
/ 15 сентября 2018

Вот простая рекурсивная функция, которая решает проблему

def getValue(dict, keys):
    if len(keys) == 1:
        return dict.get(keys[0])
    return getValue(dict.get(keys[0]), keys[1:])

И итерационный подход, если вам скучно

temp = data
for key in key_to_get:
    temp = temp.get(key)
print(temp)
...