On Wed, 02 Apr 2014 13:58:16 -0400, Roy Smith wrote: > I have a big hairy data structure which is a tree of nested dicts. I > have a sequence of strings which represents a path through the tree. > Different leaves in the tree will be at different depths (which range > from 1 to about 4 or 5 at most). I want to get the value stored at that > path. Thus, if > > keys = ['foo', 'bar', 'baz'] > > I want to retrieve tree['foo']['bar']['baz']. > > Is there some idiomatic, non-cryptic way to write that as a one-liner?
Er, idiomatic one liner? No, not really. But a helper function makes nearly anything into a one-liner: def traverse(tree, *keys): t = tree for k in keys: t = t[k] return t # one-liner leaf = traverse(tree, *list_of_keys) -- Steven -- https://mail.python.org/mailman/listinfo/python-list