【发布时间】:2012-08-27 01:57:14
【问题描述】:
给定一个字典{ k1: v1, k2: v2 ... },如果我传递了一个函数f,我想得到{ k1: f(v1), k2: f(v2) ... }。
有没有这样的内置函数?还是我必须这样做
dict([(k, f(v)) for (k, v) in my_dictionary.iteritems()])
理想情况下我会写
my_dictionary.map_values(f)
或
my_dictionary.mutate_values_with(f)
也就是说,原始字典是否发生变异或创建副本对我来说无关紧要。
【问题讨论】:
-
编写示例的更好方法是
dict((k, f(v)) for k, v in mydict.iteritems()),即没有方括号,这将阻止通过生成器创建中间列表。
标签: python dictionary map-function