Python-维护排序好的序列模块-bisect
2024-09-07 21:53:51
bisect模块
处理已经排序的序列,升序,从小到大,分插入数据和查看插入数据的位置两大核心,类似于插入排序算法
插入数据
# 首先这个序列按升序规则已经排序好的
# 查找规则是二分查找,当数据相等的时候又分为插入左边或右边
import bisect score = []
# 二分查找插入排序好的序列,升序,从小到大
# 维护已经排好序的列表,默认右边,本身必须是可修改序列类型
bisect.insort(score, 30)
# 插入相同数据的右边
bisect.insort_right(score, 30)
bisect.insort(score, 4)
bisect.insort(score, 26)
print(score) # 未排序好,则不符合前提条件
name = [3, 6, 4, 7, 9, 8]
bisect.insort(name, 4)
print(name)
查询插入位置
# 找到插入的位置,默认是右边
score = [1, 2, 3, 4, 5]
# 输入插入的位置,相同则分为左边或右边插入位置,默认右边
print(bisect.bisect(score, 4))
print(bisect.bisect_left(score, 4))
最新文章
- Java多线程6:synchronized锁定类方法、volatile关键字及其他
- 判断密文加密类型hash-identifier
- eclipse导入Android项目后,项目的名称变为了主Activity的名称
- 【读书笔记】iOS-截屏功能的实现。
- sql server 复制 需要有实际的服务器名称才能连接到服务器……
- Redis--分布式锁
- IE9下Coolite.Ext出现createContextualFragment错误
- Mysql 备份恢复与xtrabackup备份
- SQL备份所有数据库脚本
- Unity备份占时留用
- [转] JavaScript 单例模式
- P2661 信息传递 二分图的最小环
- (3.1)mysql备份与恢复之mysqldump
- rabbitmq延迟队列demo
- VS2010、VS2012、VS2013、VS2015、VS2017各版本产品激活秘钥
- 对TCP重传的进一步认识
- Mysql 常用调优命令总结
- java string和int之间的相互转化
- android Activity中设置setResult 没有触发onActivityResult
- 如何在java中发起http和https请求