functools.reduce()
to iterate over the selectors
list.operator.getitem()
for each key in selectors
, retrieving the value to be used as the iteratee for the next iteration.from functools import reduce from operator import getitem def get(d, selectors): return reduce(getitem, selectors, d)
users = { 'freddy': { 'name': { 'first': 'fred', 'last': 'smith' }, 'postIds': [1, 2, 3] } } get(users, ['freddy', 'name', 'last']) # 'smith' get(users, ['freddy', 'postIds', 1]) # 2
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️