前提:列表有序!!!
bisect ()和bisect_right ()是等效的,所以我将介绍bisect_left () )和bisec_right () )之间的区别!
使用方法:
索引1=bisect (ls,x ) #第一个参数是列表,第二个参数是要搜索的数量,返回值是索引2=bisect _ left ) ls,x )索引3=bisec _ bisec
import bisectls=[ 1,5,9,13,17 ] index1=bisect.bisect (ls,7 ) index2=bisect.bisect_left ) ls,7 ) index
如果索引1=2,索引2=2,索引3=2列表中只有一个等于x的元素,则bisect_left(ls,x )的值是ls中的x的合适的插入点索引,使得数组有序,ls
import bisectls=[ 1,5,9,13,17 ] index1=bisect.bisect (ls,9 ) index2=bisect.bisect_left ) ls,9 ) index
当在索引1=3、索引2=2、索引1=3列表中存在多个等于x的元素时,bisect_left(ls,x )返回索引,此时返回ls [索引1 ] bisect_right(ls,x )返回索引加1,此时ls[index3] x。
importbisectls=[ 1,5,5,5,17 ] index1=bisect.bisect (ls,5 ) index2=bisect.bisect_left ) ls,5 ) index3 index2={},index3={}.format(index1,index2,index3) )程序的执行结果为,
索引1=4,索引2=1,索引3=4