bisect模块
bisect.bisect(sequnce, target):返回target在sequence中的位置,该位置的标准是target放在这位置的后方,sequence仍然能保持有序。比如sequence = [1,3,4,5,10],target=6,则bisect.bisect(sequnce, target)返回值为4.
bisect.insort(sequence,target):将target插入有序序列中,并能继续保持sequence的顺序。
bisect,bisect 与bisect.insort 均提供两个参数lo,hi,即限定查找的最小索引与最大索引,默认情况下,lo=0,hi=len(sequence)
array.array
array.array类是python中的数组,仅能存放数字,它在底层存储元素与读写元素的方式和C语言一样,记录的是元素的内存字节码,而不是引用,因此它读写速度快,且占用空间小。在操作大量数字时,使用array比list更高效。
当需要把数字写进文件,或者从文件读取数字时,array类还提供了tofile()和fromfile()的方法,使操作文件更快。
array.array是可变序列,因此list支持的操作绝大多数array也支持。但是array不支持就地排序的方法,即sort()方法,只能使用sorted来进行排序并返回一个新的array。