1. bisect : 该包会通过2分法的算法,按顺序添加我们需要添加元素,也可查找当前元素在列表中的位置
方法
bisect.bisect(list,item):返回item在list的位置(有相同,则会在相同元素之后)
bisect.bisect_left(list,item):返回当前item的位置,但是这里如果item有一个和list中元素相同,那么会返回当前list里面此前元素的位置,(也就是会抢占之前元素位置)
bisect.insort(list,item):添加元素到列表中,并且是按照顺序排列
bisect.insort_left(list,item):同上,只不过会抢占之前元素位置
import bisect
lst = [1,4,5,6,8,9]
needle=bisect.bisect(lst,3)
=>
1
bisect.bisect_left(lst,4)
=>
1
bisect.insort(lst,3)
=>
[1,3,4,5,6,8,9]
bisect.insort_left(lst,4)
[1,4,4,5,6,8,9]
网友评论