流畅的python读书笔记

bisect模块

向有序列表中插入元素,并且插入后保持有序。

bisect.bisect()是bisect_right()的缩写,返回该插入到列表中索引的位置。并且相同元素时,新值插入到旧值的右边。而bisect_left则表示新值插入到旧值的左边。

bisect.insort()是insort_right()的缩写,直接将该值插入到列表中,并保持有序

替换列表的一些数据结构和应用场景

  • 存放1000w的浮点数时,使用array数组效率要高的多

    数组的方法和列表的方法大同小异

  • 频繁做先进先出的操作时,使用deque双端队列效率更高

  • 频繁检查元素是否存在时,使用集合set更加高效,因为set对元素是否存在做了优化处理

memoryview模块

不需要复制对象,就能允许python代码访问对象。memoryview(obj),obj必须是支持缓冲协议的对象,比如bytes或bytearray。修改值得内容后,原对象的值也会修改。

你可能感兴趣的:(流畅的python读书笔记)