将计数器与列表字典一起使用

时间:2019-01-14 17:03:02

标签: python-3.x

如何为字典中的每个值(列表)使用计数器?我希望输出为键-值-计数。

从集合中导入defaultdict,计数器

s = [('yellow', 'flower'), ('blue', 'water'), ('yellow', 'shirt'), ('blue', 
'sky'), ('red', 'lipstick'),('blue', 'water')]
d = defaultdict(list)

for k, v in s:
    d[k].append(v)

print(d) 


defaultdict(<class 'list'>, {'yellow': ['flower', 'shirt'], 'blue': ['water', 'sky', 'water'], 'red': ['lipstick']})

在上面的示例中,我想要以下输出: 黄色-花-1 黄色-衬衫-1 蓝色-水-2 蓝色-天空-1 红色-口红-1

1 个答案:

答案 0 :(得分:0)

基本上,您有要计数的元组列表,

最适合使用内置Counter

from collection import Counter

s = [('yellow', 'flower'), ('blue', 'water'), ('yellow', 'shirt'), 
     ('blue', 'sky'), ('red', 'lipstick'),('blue', 'water')]
res = Counter(s)

print(res) 

>> Counter({('blue', 'water'): 2, ('yellow', 'flower'): 1, 
    ('yellow', 'shirt'): 1, ('blue', 'sky'): 1, ('red', 'lipstick'): 1})

它为您计数,不用担心实施