Map dictionary values
Have you ever wanted to create a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value? Luckily, there's a quick and easy way to do this in Python.
Using dict.items(), you can iterate over the dictionary. Then, you can assign the values produced by the function to each key of a new dictionary. And that's it!
def map_values(obj, fn):
return dict((k, fn(v)) for k, v in obj.items())
users = {
'fred': { 'user': 'fred', 'age': 40 },
'pebbles': { 'user': 'pebbles', 'age': 1 }
}
map_values(users, lambda u : u['age']) # {'fred': 40, 'pebbles': 1}