fluent Python 读书笔记(四)

第二章内容回顾

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数组,他们只能保存一些原子性的数据

容器序列可以保存自己这种类型

所谓原子操作是指不会被线程调度机制打断的操作


你可能感兴趣的:(Python学习)