Элегантный способ получить значение из списка ключей во вложенном массиве в Python3? - PullRequest
0 голосов
/ 01 ноября 2019

Рассмотрим словарь, который имеет следующую вложенную структуру:

d = {"a0": {"b0": {"c0": 0}, "b1": 1}, "a1": 2}

Какой бы быстрый и элегантный способ перейти от списка ключей типа ["a0", "b0", "c0"] к его значению d["a0"]["b0"]["c0"] вобщий способ?

Другими словами, есть ли способ сделать следующее выражение однострочным:

val = 0
for k in key_list:
    val = val[key]

Большое спасибо!

1 Ответ

0 голосов
/ 04 ноября 2019

Я думаю, это было бы довольно элегантно:

def dict_get(d, param):
    if(len(param)>0 and len(d)>0):
        return dict_get(d.get(param[0], {}), param[1:])
    else:
        return d

d = {"a0": {"b0": {"c0": 0}, "b1": 1}, "a1": 2}

ind=["a0", "b0", "c0"]

print(dict_get(d, ind))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...