今天同事说到了一个python的排序模块bisect,觉得挺有趣的,跟大家分享分享。
先看看模块的结构:

前面五个属性大家感兴趣可以打出来看看数值,这里就不介绍了。
先说明的是,使用这个模块的函数前先确保操作的列表是已排序的。

先看看 insort 函数:

其插入的结果是不会影响原有的排序。
再看看 bisect 函数:

其目的在于查找该数值将会插入的位置并返回,而不会插入。
接着看 bisect_left 和 bisect_right 函数,该函数用入处理将会插入重复数值的情况,返回将会插入的位置:

其对应的插入函数是 insort_left 和 insort_right :

可见,单纯看其结果的话,两个函数的操作结果是一样的,其实插入的位置不同而已。
深入理解Python排序模块bisect
本文详细介绍了Python中用于高效排序操作的bisect模块,包括insort、bisect、bisect_left、bisect_right等核心函数的用法及区别,并通过实例演示了如何在已排序列表中插入元素而不影响原有顺序。
592

被折叠的 条评论
为什么被折叠?



