python容器数据类型collections中的Counter类使用

python容器数据类型collections中的Counter类

导入

Counter——字典的子类,提供了可哈希对象的计数功能

from collections import Counter

定义方式

# 定义一个空的Counter
c = Counter()
print(type(c))
# 方式一
c = Counter("abcdefgabcdefabcdeabcdabc")
print(c)
# 方式二
c = Counter({'a': 3, "b": 4, "c": 5, "d": 2})
print(c)
# 方式三
c = Counter(a=1, b=2, c=3, d=4)
print(c)

结果如下:
<class ‘collections.Counter’>
Counter({‘a’: 5, ‘b’: 5, ‘c’: 5, ‘d’: 4, ‘e’: 3, ‘f’: 2, ‘g’: 1})
Counter({‘c’: 5, ‘b’: 4, ‘a’: 3, ‘d’: 2})
Counter({‘d’: 4, ‘c’: 3, ‘b’: 2, ‘a’: 1})

方法

1.elements()
返回一个迭代器,其中每个元素将重复出现计数值所指定次。 元素会按首次出现的顺序返回。 如果一个元素的计数值小于一,elements() 将会忽略它。

c = Counter(a=1, b=2, c=3, d=4)
sorted(c.elements())

结果如下:
[‘a’, ‘b’, ‘b’, ‘c’, ‘c’, ‘c’, ‘d’, ‘d’, ‘d’, ‘d’]

2.most_common()
返回一个列表,其中包含 n 个最常见的元素及出现次数,按常见程度由高到低排序。 如果 n 被省略或为 None,该函数将返回计数器中的所有元素。 计数值相等的元素按首次出现的顺序排序。

c = Counter("abcdefgabcdefabcdeabcdabc")
print(c.most_common())
print(c.most_common(4))

结果如下:
[(‘a’, 5), (‘b’, 5), (‘c’, 5), (‘d’, 4), (‘e’, 3), (‘f’, 2), (‘g’, 1)]
[(‘a’, 5), (‘b’, 5), (‘c’, 5), (‘d’, 4)]

3.subtract()
从 迭代对象或映射对象 减去元素

c = Counter(a=3, b=2, c=1)
d = Counter(a=1, b=1, c=1, d=1)
c.subtract(d)
print(c)

结果如下:
Counter({‘a’: 2, ‘b’: 1, ‘c’: 0, ‘d’: -1})
4.其他
通常字典方法都可用于 Counter 对象,但有两个方法工作方式与字典并不相同,fromkeys()方法没有在 Counter 中实现。update()从迭代对象计数元素或者从另一个映射对象 (或计数器) 添加。 像 dict.update() 但是是加上,而不是替换。另外,迭代对象应该是序列元素,而不是一个 (key, value) 对。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页