基于dict的累加器
def dict_accumulator(my_dict: dict, add_value, num=1):
"""字典累加器"""
if add_value not in my_dict.keys():
my_dict[add_value] = num
else:
my_dict[add_value] += num
return my_dict
if __name__ == '__main__':
word = "abcaaaaa"
cdict = {}
for letter in word:
cdict = dict_accumulator(cdict, letter)
print(cdict)
基于defaultdict的累加器
注意在使用初始化的时候需要声明累加的类型:比如defaultdict(int)
或defaultdict(float)
都可以
from collections import defaultdict
if __name__ == '__main__':
word = "abcaaaaa"
counter = defaultdict(int)
for letter in word:
counter[letter] += 1
print(counter)
基于Count的累加器
from collections import Counter
if __name__ == '__main__':
word = "abcaaaaa"
counter = Counter()
for letter in word:
counter = counter + Counter({letter: 1})
print(counter)