1. 程式人生 > >Python3 bisect是維護已排序序列神器

Python3 bisect是維護已排序序列神器

序列是個型別並不是轉指list,bisect利用高效能的原理是二分查詢,自己可以百度下. 它的用處就是自動排序(升序). 看下例子

import bisect


b=[2,3,4,5]   
bisect.insort_left(b,2.0)    
bisect.insort_right(b,3.0)
print(bisect.bisect_left(b,2))
print(bisect.bisect_right(b,2))
print(b)

列印結果:

0    
2
[2.0, 2, 3, 3.0, 4, 5]

1.其中 bisect.insort_left 和bisect.insort_right 都是在序列插入資料. 當有相同的值得時候,這個時候系統就不知道怎麼排序了.例如 2.0==2,系統為了解決這個問題所以搞出來這個方法,系統預設的是right. 通過上邊的例子可以看出效果. 2. bisect.bisect_left 和bisect_bisect_right , 開發插入資料的時候提前要知道 這個資料插入列表到底在哪個位置.所以得出這兩個方法. 可以參考下上邊的例子,自己體會下.