Python内置模块bisect 维护已排序序列

47次阅读
没有评论

共计 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(),在现有值之前插入。

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-08-03发表,共计416字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)