关于python:Python标准库超好用的counter计数器不接受反驳

43次阅读

共计 1633 个字符,预计需要花费 5 分钟才能阅读完成。

人生苦短,快学 Python!

collections 是 python 的规范库,它提供了一些解决特定问题的容器,也就是说有些问题尽管能够用 list,tuple,dict 解决,但解决起来太麻烦,而这些问题又常常遇到,所以他们就把这些问题的通用办法整顿了进去,放到 collections 库中让人应用。

collections 中一共有 9 种容器,其中 counter、defaultdict、deque、namedtuple、orderdict 比拟罕用。

明天咱们独自来讲讲 Counter 的用法!

Counter 目标是用来跟踪值呈现的次数。它是一个无序的容器类型,以字典的键值对模式存储,其中元素作为 key,其计数作为 value。因而,咱们能够通过字典的取数形式,进行取数。在应用之前,咱们须要先导入这个库,导入办法如下:

from collections import Counter

应用 Counter 类,咱们须要先实例化一个 Counter 类,咱们先实例化一个空的 Counter 类。

c1 = Counter()
c1

后果如下:

咱们能够往括号中传入参数,来帮忙咱们实现不同状况下的 “ 值计数 ”

Counter 类的创立

咱们能够往 Counter 类中,别离传入字符串、列表、元组、字典等,创立一个 Counter 类。

1. 传入一个字符串
c2 = Counter("hello huang")
c2

后果如下:

2. 传入一个列表
lis = [i for i in "chinese"]
c3 = Counter(lis)
c3

后果如下:

3. 传入一个字典
import random
dic = {k: random.randint(1,4) for k in "abcdefg"}
c4 = Counter(dic)
c4

后果如下:

4. 关键字参数
c5 = Counter(a=7,b=8)
c5

后果如下:

Counter 类中计数元素值的拜访

和拜访字典相似,然而和字典惟一不同的是,如果所拜访的键不存在时,返回 0,而不是 KeyError。

c = Counter("hello huang")
c["h"]

后果如下:

Counter 类中计数元素的批改

对于 Counter 类中的计数元素,既能够做加减法、还能够做汇合运算、也能够删除。

1. 加减法
① 加法

咱们既能够应用 update 函数,实现这个操作。还能够应用 + 号,实现这个操作。

② 减法

咱们既能够应用 subtract 函数,实现这个操作。然而 - 号用法就不同了,它应该属于汇合运算,只统计在汇合 a 中,而不在汇合 b 中的值。

2. 汇合运算

下面的 - 号就是一个汇合运算,我在为大家介绍一下与 &、| 或操作。

① 与 &

& 操作,是找两个 collection 中都有的键最小的键值。

c1 = Counter("chinese")
c2 = Counter("where")

c1 & c2

后果如下:

② | 或

| 操作,是找两个 collection 中的键最大的键值(能够只有一个 collection 有这个键,然而后果中的键值必须大于零,小于零的被舍弃)。

c1 = Counter("chinese")
c2 = Counter("where")

c1 | c2

后果如下:

3. 删除操作

删除元素应用的是 del 函数。

c = Counter("where")

del c["r"]
c

后果如下:

Counter 类中其它罕用函数

1. most_common(n)找出反复次数最多的前 n 个。
c = Counter("aabbbcccddddeeeee")
c.most_common(2)

后果如下:

2. key 和 value 用于获取 Collections 键和键值的汇合。
c = Counter("chinese")
c.keys()
c.values()

后果如下:

当然,咱们也能够应用 dict() 函数 将 collection 中的内容转化为字典,咱们也能够应用 list() 函数 将 collection 中的键转化为 list,这里不在讲述,大家自行上来学习。

Python 是一种十分多样化且倒退良好的语言,因而必定会有许多我没有思考到的性能,如果大家有晓得的,能够在评论区通知我

正文完
 0