[Python标准库]bisect——维护有序列表
作用:维护有序列表,而不必在每次向列表增加一个元素时都调用 sort 排序。
Python版本:1.4 及以后版本。
bisect 模块实现了一个算法用于向列表中插入元素,同时仍保持列表有序。有些情况下,这比反复对一个列表排序更高效,另外也比构建一个大列表之后再显示地对其排序更为高效。
有序插入
下面给出一个简单的例子,这里使用 insort() 按有序顺序向一个列表中插入元素。
作用:维护有序列表,而不必在每次向列表增加一个元素时都调用 sort 排序。
Python版本:1.4 及以后版本。
bisect 模块实现了一个算法用于向列表中插入元素,同时仍保持列表有序。有些情况下,这比反复对一个列表排序更高效,另外也比构建一个大列表之后再显示地对其排序更为高效。
有序插入
下面给出一个简单的例子,这里使用 insort() 按有序顺序向一个列表中插入元素。
import bisect
import random
# Use a constant seed to ensure that
# the same pseudo-random numbers
# are used each time the loop is run.
random.seed(1)
print 'New Pos Contents'
print '--- --- --------'
# Generate random numbers and
# insert them into a list in sorted
# order.
l = []
for i in range(1, 15):
r = random.randint(1, 100)
position = bisect.bisect(l, r)
bisect.in