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