如何用Coun打印出字典中count值

2024-10-01 09:38:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码在下面

def tuptodi(tup, dictio): 
    for a, b in tup: 
        dictio.setdefault(a, []).append(b) 
    return dictio
tups = [('key1', 'value1'), ('key2', 'value1'),('key3', 'value3'),('key1', 'value1'),('key1', 'value2')]
dictionary = {} 
print (tuptodi(tups, dictionary)) 

我的朋友出去了

{'key1': ['value1', 'value1', 'value2'], 'key2': ['value1'], 'key3': ['value3']}

我的愿望破灭了

{'key1':{'value1':2},
{'key2':{'value1':1},
{'key3':{'value3':1}

如何通过from collections import Counter实现这一点


Tags: 代码infordictionarydefkey2key1value1
2条回答

在听写理解中使用Counter

from collections import Counter

data = {'key1': ['value1', 'value1', 'value2'], 'key2': ['value1'], 'key3': ['value3']}
out  = {key: Counter(sublist) for key, sublist in data.items()}

print(out)
# {'key1': Counter({'value1': 2, 'value2': 1}), 
#  'key2': Counter({'value1': 1}), 
#  'key3': Counter({'value3': 1})}

使用collections.Counterdefaultdict

from collections import Counter, defaultdict

tups = [('key1', 'value1'), ('key2', 'value1'),('key3', 'value3'),('key1', 'value1'),('key1', 'value2')]
cnt = defaultdict(Counter)

for i,j in tups:
    cnt[i].update([j])

cnt

输出:

defaultdict(collections.Counter,
            {'key1': Counter({'value1': 2, 'value2': 1}),
             'key2': Counter({'value1': 1}),
             'key3': Counter({'value3': 1})})

相关问题 更多 >