【发布时间】:2020-06-26 15:45:33
【问题描述】:
我有一本字典,比如d = {-1: 10, 0: 20, 1: 30, 2: 40},其中键 k 是某个标签,值对应于计数的数量。我有一些函数f(x),让我们使用f(x)=|x|,我想创建另一个字典d2,这样d2 = {f(x): #counts f(x)} 的所有x 值都是原始字典中的键。请注意,f 不是单射的,所以f(-1)=f(1)。有没有一种(Pythonic)方法可以做到这一点,而无需从头开始显式循环和构造d2?
在示例中,所需的字典是 d2 = {1: 40, 0:20, 2:40}
编辑:我目前的解决方案
def map_dictionary(d, f):
d2 = {}
for k in d:
if f(k) in d2:
d2[f(k)] += d[k]
else:
d2[f(k)] = d[k]
return d2
【问题讨论】:
标签: python-3.x dictionary