Any Functional Programming method of traversing a nested dictionary?

dictionary, functional-programming, python

Solution

Use `reduce()`:

reduce(dict.__getitem__, l, d)

or better still, using `operator.getitem()`:

from operator import getitem

reduce(getitem, l, d)

Demo:

>>> d = {"a": {"b": {"c": 4}}} 
>>> l = ["a", "b", "c"]
>>> from operator import getitem
>>> reduce(getitem, l, d)
4

Python 3 moved the `reduce()` function out of the built-ins and into `functools.reduce()`.

Problem

I am trying to find a better way to implement this: ``` d = {"a": {"b": {"c": 4}}} l = ["a", "b", "c"] for x in l: d = d[x] print (d) # 4 ``` I am learning functional programming so I am just trying random example that come to my head :)

Original source

Related problems