Ответ 1
Используйте reduce()
:
reduce(dict.__getitem__, l, d)
или еще лучше, используя operator.getitem()
:
from operator import getitem
reduce(getitem, l, d)
Демо:
>>> d = {"a": {"b": {"c": 4}}}
>>> l = ["a", "b", "c"]
>>> from operator import getitem
>>> reduce(getitem, l, d)
4
Python 3 переместил функцию reduce()
из встроенных модулей и в functools.reduce()
.