[Python标准库]bisect——维护有序列表

Python的bisect模块提供了一种高效的方式在已排序的列表中插入元素,保持列表有序。通过insort()函数,可以在找到合适位置后插入元素,避免频繁排序。对于长列表,这种方法比先构建后排序更节省时间和内存。此外,insort_left()和insort_right()分别用于在现有值前或后插入重复值。
摘要由CSDN通过智能技术生成
[Python标准库]bisect——维护有序列表
        作用:维护有序列表,而不必在每次向列表增加一个元素时都调用 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值