今天同事說到了一個python的排序模塊bisect,覺得挺有趣的,跟大家分享分享。
先看看模塊的結構:

前面五個屬性大家感興趣可以打出來看看數值,這里就不介紹了。
先說明的是,使用這個模塊的函數前先確保操作的列表是已排序的。

先看看 insort 函數:

其插入的結果是不會影響原有的排序。
再看看 bisect 函數:

其目的在於查找該數值將會插入的位置並返回,而不會插入。
接着看 bisect_left 和 bisect_right 函數,該函數用入處理將會插入重復數值的情況,返回將會插入的位置:

其對應的插入函數是 insort_left 和 insort_right :

可見,單純看其結果的話,兩個函數的操作結果是一樣的,其實插入的位置不同而已。
