Рассмотрим словарь со следующей вложенной структурой:
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]
Большое спасибо!
0
José Luiz Ferreira
1 Ноя 2019 в 13:30
1 ответ
Это, я думаю, было бы довольно элегантно:
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))
0
Grzegorz Skibinski
4 Ноя 2019 в 20:52
Похожие вопросы
Новые вопросы
python-3.x
НЕ ИСПОЛЬЗУЙТЕ, ЕСЛИ ВАШ ВОПРОС ТОЛЬКО ДЛЯ PYTHON 3. Всегда используйте вместе со стандартным тегом [python].
d["a0"]["b0"]["c0"]