流畅的python读书笔记
2020-06-08 本文已影响0人
747大雄
bisect模块
向有序列表中插入元素,并且插入后保持有序。
bisect.bisect()是bisect_right()的缩写,返回该插入到列表中索引的位置。并且相同元素时,新值插入到旧值的右边。而bisect_left则表示新值插入到旧值的左边。
bisect.insort()是insort_right()的缩写,直接将该值插入到列表中,并保持有序
替换列表的一些数据结构和应用场景
-
存放1000w的浮点数时,使用array数组效率要高的多
数组的方法和列表的方法大同小异
-
频繁做先进先出的操作时,使用deque双端队列效率更高
-
频繁检查元素是否存在时,使用集合set更加高效,因为set对元素是否存在做了优化处理
memoryview模块
不需要复制对象,就能允许python代码访问对象。memoryview(obj),obj必须是支持缓冲协议的对象,比如bytes或bytearray。修改值得内容后,原对象的值也会修改。