流畅的python读书笔记

bisect模块

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

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

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

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

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

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

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

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

memoryview模块

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。