gpt4 book ai didi

python - 如何将 defaultdict 中的每个计数相加?

转载 作者:行者123 更新时间:2023-11-28 19:57:52 26 4
gpt4 key购买 nike

这是我必须计算文档中每个单词的方法:

from collections import defaultdict
word_dict=defaultdict(int)

def count_words(newstring):
words=newstring.lower().split()
for word in words:
word_dict[word]+=1

当我打印 word_dict 时,我得到了以下结果:

defaultdict(<type 'int'>, {'rate': 1, 'babo-free': 1, 'risk': 3, 'interest': 1})

我需要添加每个计数,以便 total_count 变量应该等于 6。

我想这对你们中的许多人来说可能太容易了,但作为初学者,我不知道从哪里开始。

最佳答案

您可以像处理任何字典一样执行此操作:

>>> d = {'a': 1, 'b': 1, 'c': 3, 'd': 4}
>>> sum(d.values())
9

在 Python 2.* 中你也可以使用

>>> sum(d.itervalues())
9

它不会创建新列表,但坦率地说,您的列表不太可能长到足以成为瓶颈。 defaultdict 的工作方式相同:

>>> from collections import defaultdict
>>> d2 = defaultdict(int)
>>> d2.update(d)
>>> d2
defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 1, 'd': 4})
>>> sum(d2.values())
9

顺便说一句,在 Python 2.7+ 中,还有一个方便的 Counter 对象:

>>> from collections import Counter
>>> Counter("a b A B B c".lower().split())
Counter({'b': 3, 'a': 2, 'c': 1})
>>> Counter("a b A B B c".lower().split()).most_common()
[('b', 3), ('a', 2), ('c', 1)]
>>> sum(Counter("a b A B B c".lower().split()).values())
6

关于python - 如何将 defaultdict 中的每个计数相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com