第二章内容回顾
1.bisect 模块
bisect.bisect(sequence, needle) 查找needle 在sequence中应该处在的位置
bisect.insort(my_list, new_item) 直接插进list中
2.数组
怎么建立
1.from array import array
f = array('类型码',。。。)
数组有很强大的tofile, fromfile能力,因为它其实存的不是float对象,而是机器字节表述!
3.内存视图
memoryview(一个数组等)
返回的东西会和原数组共享内存但不改动原数组
还可以任意转换格式
memv.cast('B',...)
4.numpy
numpy.arange(数字) 建一个0-数字的numpy.ndarray
a.shape 属性可访问几维,几个元素
a.shape = 3, 4 变成2维
a[2,1]访问第二行第一列
a[:, 1]访问所有第一列
a.transpose() 转置
a *= 5 对每个元素都乘5
5.队列
删除第一个元素,或在第一个元素前插入东西会特别快
建立
from collections import deque
dq = deque(range(10), maxlen=10)
maxlen 一旦定下不可更改,当已经有十个元素时,在后面加会让前面的挤出去,前面加同理
rotate(n) 正数代表把最右边的n个移到最左边,不改变相对关系
负数代表把最左边的n个移到最右边
6.扁平序列 容器序列
扁平序列大概就指标准数组和numpy数组,他们只能保存一些原子性的数据
容器序列可以保存自己这种类型
所谓原子操作是指不会被线程调度机制打断的操作