给定一个字典 { 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())
,即去掉方括号,这可以通过生成器避免创建中间列表。 - bereal