Могу ли я добавить/увеличить отдельные элементы на счетчик?collections.Counter - могу ли я добавить/увеличить отдельные элементы на счетчик?
Я получаю каждый элемент один за другим из потока синтаксического анализа 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)
и увидеть мой счет за «а «Поднимитесь на один. Это не похоже, что это в Counter API, я что-то упускаю?
Да, я знаю, что я мог бы использовать defaultdict и увеличивать себя, но я ожидал, что эта возможность выйдет из Counter.
Счетчик - это всего лишь подкласс dict. Все, что вы можете сделать с помощью dict, вы можете делать с Counter. –
На самом деле, он работает как 'defaultdict (int)' –
90% времени, когда вы можете просто попробовать, что вы * надеетесь * будет работать на Python, и он будет работать. –