常用内建模块-集合模块

collections  集合模块,提供了许多有用的集合类

from collections import namedtuple

Point = namedtuple('Point',['x','y'])
p = Point(1,2)
print(p.x)  #1
print(p.y)  #2

namedtuple是一个函数,定义一种数据类型,具备tuple的不变性,用以构建只有少数属性,但是没有方法的对象,可根据属性来引用

deque  使用list时,访问快,但插入和删除很慢,使用deque可以高效实现插入和删除操作的双向列表,适用于队列和栈

 1 from collections import deque
 2 
 3 q = deque(['a','b','c'])
 4 q.append('s')
 5 q.append('p')
 6 print(q)  #deque(['a', 'b', 'c', 's', 'p'])
 7 q.pop()
 8 print(q)  #deque(['a', 'b', 'c', 's'])
 9 q.appendleft('t')
10 print(q)
11 q.popleft()  #deque(['t', 'a', 'b', 'c', 's'])
12 print(q)  #deque(['a', 'b', 'c', 's'])
View Code

defaultdict  除了在key不存在时返回默认值,其他行为跟dict完全一样

1 from collections import defaultdict
2 
3 dd = defaultdict(lambda:'不存在的')
4 dd['key1'] = 'a'
5 print(dd['key1'])  #a
6 print(dd['key2'])  #不存在的
View Code

OrderedDict  使用dict时,对dict迭代无法确定key的顺序

1 from collections import OrderedDict
2 
3 od = OrderedDict([('a',1),('b',2),('c',3)])
4 print(od)  #OrderedDict([('a', 1), ('b', 2), ('c', 3)])
View Code

Countter  简单的计数器

1 from collections import Counter
2 
3 c = Counter()
4 for ch in 'qsccftthn':
5     c[ch] = c[ch]+1
6 print(c)

base64  用记事本打开exejpgpdf这些文件时,会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。

1 import base64
2 
3 print(base64.b64encode(b'abcdefg'))  #b'YWJjZGVmZw=='
4 print(base64.b64decode(b'YWJjZGVmZw=='))  #b'abcdefg'
View Code
原文地址:https://www.cnblogs.com/bfcs/p/11098241.html