Python:bisect的基本用法

本文介绍了Python内置的bisect模块,用于在有序序列中查找和插入元素。bisect.bisect()函数找到插入位置,insort()则直接插入并保持有序。此外,还提到了bisect_left及其用法,区别在于处理相同元素时的插入位置。示例展示了如何使用这些功能操作列表。
摘要由CSDN通过智能技术生成

bisect是python内置模块,用于有序序列的插入和查找。

  • 查找: bisect(array, item)
  • 插入: insort(array,item)

查找 :

import bisect
 
a = [1,4,6,8,12,15,20]
position = bisect.bisect(a,13)
print(position)
 
# 用可变序列内置的insert方法插入
a.insert(position,13)
print(a)

输出:

5
[1, 4, 6, 8, 12, 13, 15, 20]

插入: 

使用bisect.insort,比bisect先查找该插入哪个位置,再用insert方法插入更加快速的方法

import bisect
 
a = [1,4,6,8,12,15,20]
bisect.insort(a,13)
print(a)

输出: 

[1, 4, 6, 8, 12, 13, 15, 20]

Tip: 

bisect还有bisect_left,insort_left的用法,和不带left的用法的区别是:当插入的元素和序列中的某一个元素相同时,该插入到该元素的前面(左边,left),还是后面(右边);如果是查找,则返回该元素的位置还是该元素之后的位置。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UCSD.KS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值