我有这样的字典

d = {1:'Bob', 2:'Joe', 3:'Bob', 4:'Bill', 5:'Bill'}


我想记录每个名称作为字典值出现多少次。因此,输出应如下所示:

d = {1:['Bob', 1], 2:['Joe',1], 3:['Bob', 2], 4:['Bill',1] , 5:['Bill',2]}

最佳答案

下面显示了一种计算所需值的方法:

from collections import Counter


d = {1:'Bob',2:'Joe',3:'Bob', 4:'Bill', 5:'Bill'}


c = Counter()
new_d = {}

for k in sorted(d.keys()):
    name = d[k]
    c[name] += 1;
    new_d[k] = [name, c[name]]

print(new_d)
# {1: ['Bob', 1], 2: ['Joe', 1], 3: ['Bob', 2], 4: ['Bill', 1], 5: ['Bill', 2]}


在这里,我使用Counter跟踪输入字典中名称的出现。希望这可以帮助。也许不是最优雅的代码,但它可以工作。

关于python - python在dict中运行值计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29270511/

10-12 21:05