今天看一致性hash算法的python實現用到了bisect函數,在網上找到下面這篇文章總結的很好 記錄一下
先看看模塊的結構:
前面五個屬性大家感興趣可以打出來看看數值,這裏就不介紹了。
先說明的是,使用這個模塊的函數前先確保操作的列表是已排序的。
先看看 insort 函數:
其插入的結果是不會影響原有的排序。
再看看 bisect 函數:
其目的在於查找該數值將會插入的位置並返回,而不會插入。
接着看 bisect_left 和 bisect_right 函數,該函數用入處理將會插入重複數值的情況,返回將會插入的位置:
其對應的插入函數是 insort_left 和 insort_right :
可見,單純看其結果的話,兩個函數的操作結果是一樣的,其實插入的位置不同而已。