如何为字典中的每个值(列表)使用计数器?我希望输出为键-值-计数。
从集合中导入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
答案 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})
它为您计数,不用担心实施