Любой метод функционального программирования для перемещения вложенного словаря?

Я пытаюсь найти лучший способ реализовать это:

d = {"a": {"b": {"c": 4}}} l = ["a", "b", "c"] for x in l: d = d[x] print (d) # 4 

Я изучаю функциональное программирование, поэтому я просто пробую случайный пример, который приходит мне в голову 🙂

One Solution collect form web for “Любой метод функционального программирования для перемещения вложенного словаря?”

Используйте 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() .

Python - лучший язык программирования в мире.