Files
30-seconds-of-code/snippets/get.md
Isabelle Viktoria Maciohsek 63d92f2482 Add get
2020-10-28 12:21:39 +02:00

709 B

title, tags
title tags
get dictionary,list,intermediate

Retrieves the value of the nested key indicated by the given selector list from a dictionary or list.

  • Use functools.reduce() to iterate over the selectors list.
  • Apply 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