python的Counter类
Counter 集成于 dict 类,因此也可以使用字典的方法,此类返回一个以元素为 key 、元素个数为 value 的 Counter 对象集合
from collections import Counter
s = "aabbccr"
count = Counter(s)
print(count)
结果:
Counter({'a': 2, 'b': 2, 'c': 2, 'r': 1})
elements() 返回一个迭代器
from collections import Counter
s = "aabbccr"
count = Counter(s)
res = count.elements()
print(res)
for k in res:
print(k)
结果:
<itertools.chain object at 0x000001A20ADB2DD8>
a
a
b
b
c
c
r
most_common(n) 返回数量最多的前 n 个元素
from collections import Counter
s = "aabbccr"
count = Counter(s)
res = count.most_common()
print(res)
res = count.most_common(2)
print(res)
结果:
[('a', 2), ('b', 2), ('c', 2), ('r', 1)]
[('a', 2), ('b', 2)]
subtract() 相当于减法,调用这个方法的 Counter 会被覆盖掉
from collections import Counter
d1 = Counter({'a':1,'b':2,'c':6,'d':9})
d2 = Counter({'a':0,'b':1,'c':7,'d':9})
d1.subtract(d2)
print(d1)
print(d2)
结果:
Counter({'a': 1, 'b': 1, 'd': 0, 'c': -1})
Counter({'d': 9, 'c': 7, 'b': 1, 'a': 0})