技术交流QQ群:1027579432,欢迎你的加入!
1.Counter
- Counter是字典对象的一个子类。Counter()函数是collections模块中的函数,它接收一个可迭代对象,例如list、tuple等,返回一个Counter字典。返回Counter字典的键是Counter()函数接收的可迭代对象中唯一的元素,Counter字典的值是Counter()函数接收的可迭代对象中唯一的元素的出现次数。
from collections import Counter lis = [1, 2, 1, 3, 3, 2, 1, 2, 3, 2, 1, 3, 2, 2, 1] c = Counter(lis) # 创建Counter类的一个对象c print(c) # result: Counter({2: 6, 1: 5, 3: 4}) # 返回某个元素 print(c[1]) # 遍历整个对象c for k, v in c.items(): print(k, '---->', v)
most_common()函数的使用
- Counter类的一个对象c中常用的函数是most_common(),当对象c调用most_common()函数时,返回的是包含N个由最常见元素和元素出现次数组成的元组作为基本列表元素构成的列表,其中N是自己指定的参数。
from collections import Counter lis = [1, 2, 1, 3, 3, 2, 1, 2, 3, 2, 1, 3, 2, 2, 1] c = Counter(lis) c.most_common(2) # result: [(2, 6), (1, 5)]
2.defaultdict
- de***tdict类似于Python中内建的字典,当使用defaultdict时,访问字典中不存在的键时,不会抛出异常。
- defaultdict使用一个默认的值来初始化字典的键。字典值的设置需要根据创建defaultdict对象时来指定设置值的数据类型,具体代码如下:
from collections import defaultdict names_dict = defaultdict(int) names_dict['curry'] = 1 names_dict['harden'] = 2 names_dict['durant'] = 3 sara_number = names_dict['Sara'] print(sara_number) # result 0
3.deque
-
deque的最大容量是10,只能容纳10个元素
from collections import deque my_deque = deque(maxlen=10) for i in range(10): my_deque.append(i+1) print(my_deque) # result: deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], maxlen=10)
-
在my_deque后再增加5个元素,就会将队列的队头前面开始的5个元素删除,再从队尾添加5个元素。
for i in range(10,15): my_deque.append(i+1) print(my_deque) # result deque([6, 7, 8, 9, 10, 11, 12, 13, 14, 15], maxlen=10)
4.namedtuple
- 创建一个名字固定的元组,nametuple()函数接收两个参数,第一个参数接收名字固定的元组的name,第二个参数是元组的属性
from collections import namedtuple Person = namedtuple('Person', 'name, age, job') Mike = Person(name='Mike', age=30, job='Data Science') Kate = Person(name='Kate', age=32, job='Project Manager') print(Mike) print(Kate)