共计 416 个字符,预计需要花费 2 分钟才能阅读完成。
bisect 内置模块,用于维护已排序序列。Bisect 是二分法的意思,这里使用二分法来排序,它会将一个元素插入到一个有序列表的合适位置,这使得不需要每次调用 sort 的方式维护有序列表。在一些情况下,这比反复排序列表或构造一个大的列表再排序的效率更高。
以排序顺序插入
import bisect
lst = []
bisect.insort(lst, 2)
bisect.insort(lst, 5)
bisect.insort(lst, 3)
bisect.insort(lst, 6)
bisect.insort(lst, 3)
print(lst) # [2, 3, 3, 5, 6]
insort() 用于按排序顺序将项目插入列表。
处理重复
bisect 模块提供了两种处理重复的方法:可以将新值插入现有值的左侧,也可以插入右侧。
insort() 函数实际上是 insort_right() 的别名,它在现有值之后插入一个项目。相应的函数 insort_left(),在现有值之前插入。
正文完