【发布时间】:2016-12-02 13:12:14
【问题描述】:
我想计算字典中每个值的数量,并构造一个以该值作为键的新值,以及以所述值作为值的键列表。
Input :
b = {'a':3,'b':3,'c':8,'d':3,'e':8}
Output:
c = { '3':[a. b. d]
'8':[c, e]
}
我已经写了以下内容,但是它引发了一个关键错误并且没有给出任何输出,有人可以帮忙吗?
def dictfreq(b):
counter = dict()
for k,v in b.iteritems():
if v not in counter:
counter[v].append(k)
else:
counter[v].append(k)
return counter
print dictfreq(b)
【问题讨论】:
-
if v not in counter:- 如果计数器字典中没有v,你为什么要在下面一行?counter[v].append(something)? -
我知道你想自己实现这个,但只是为了记录:
itertools模块中有一个内置的计数器
标签: python python-2.7 list dictionary counter