gpt4 book ai didi

python - collections.Counter - 我可以向计数器添加/增加单个元素吗?

转载 作者:行者123 更新时间:2023-11-28 22:32:26 25 4
gpt4 key购买 nike

我可以向计数器添加/增加单个元素吗?

我从一个 xml 解析流中一个一个地获取每个元素,所以我在这里使用的计数器总是基于 1 对 1。

好的,我知道我可以做到:

from collections import Counter
counter = Counter("abaa")

print ("counter:", counter) #('counter:', Counter({'a': 3, 'b': 1}))

#and I can do this as well...
def track_data(counter, data):
counter.update(Counter(data))

#let's say I am in a function that receives data one by one.
one_element_of_incoming_data = "a"
track_data(counter, one_element_of_incoming_data)
print ("counter:", counter) #('counter:', Counter({'a': 4, 'b': 1}))

但我真正想做的是在不构建新计数器的情况下增加:

counter.increment(one_element_of_incoming_data)

然后看到我对“a”的计数增加了一个。它看起来不像是在 Counter API 中,我是不是漏掉了什么?

是的,我知道我可以使用 defaultdict 并增加自己,但我有点期待计数器的这种功能。

最佳答案

当然:

from collections import Counter

counter = Counter()
for s in 'abcdefga':
counter[s] += 1

通过这种方式,Counter 的工作方式类似于 defaultdict(int)。但是,它也有一些方便的方法,因为它可以处理事物的计数(例如,您可以将两个 Counter 加在一起,它有一个更方便的构造函数等)。

关于python - collections.Counter - 我可以向计数器添加/增加单个元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40918903/

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