我想知道,在一个列表的字典中,一个列表中的每个项目出现了多少次。 键是每个值的出现次数,而值可以在多个键中出现。
所以,我想知道。
{1: ['intel', 'mail', 'com'], 50: ['yahoo', 'com'], 900: ['google', 'mail', 'com'], 5: ['wiki', 'org']}
将包含
com
值,共计956个 com
字典中的值。mail.com
价值观intel.mail.com
价值wiki.org
价值观诸如此类。
我想解决的是 这个问题我决定把所有东西都编成一本字典。
cpdomains = ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
split_number = [x.split(' ') for x in cpdomains]
domain = {int(x[0]): x[1].split('.') for x in split_number}
给了我那本字典
你可以使用Counter对象(来自collection)与reduce(来自functools),将所有的词数累积到一个大的Counter字典中,并进行总计。
from collections import Counter
from functools import reduce
countWords = {1: ['intel', 'mail', 'com'],
50: ['yahoo', 'com'],
900: ['google', 'mail', 'com'],
5: ['wiki', 'org']}
toCounter = lambda cw: Counter({w:cw[0] for w in cw[1]})
wordCounts = reduce(Counter.__add__, map(toCounter,countWords.items()) )
print(wordCounts)
Counter({'com': 951, 'mail': 901, 'google': 900,
'yahoo': 50, 'wiki': 5, 'org': 5, 'intel': 1})