30秒学会 Python 片段 · 2019年2月8日

30秒学会 Python 片段 – map_values

Creates a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value.

Use dict.keys() to iterate over the dictionary’s keys, assigning the values produced by fn to each key of a new dictionary.

代码实现

def map_values(obj, fn):
  ret = {}
  for key in obj.keys():
    ret[key] = fn(obj[key])
  return ret

使用样例

users = {
  'fred': { 'user': 'fred', 'age': 40 },
  'pebbles': { 'user': 'pebbles', 'age': 1 }
}

map_values(users, lambda u : u['age']) # {'fred': 40, 'pebbles': 1}