python之bisect模块, 有序列表插入数据

简介: bisect是python的内置模块, 可以使用它来插入数据, 并且插入的数据不会影响列表的排序, **但是原有列表需要是有序的, 并且不能是倒序**.

bisect是python的内置模块, 可以使用它来插入数据, 并且插入的数据不会影响列表的排序, 但是原有列表需要是有序的, 并且不能是倒序.

  • bisect.bisect(data, n), 查找并返回n插入的位置下标, 但并不会插入.

    data = [1, 7, 3, 8, 5]
    data.sort()   
    bisect.bisect(data, 6)    # 返回 3
  • bisect.insort(data, n), 插入n, 不会影响列表顺序.

     bisect.insort(data, 6)
     print(data)     # [1, 3, 5, 6, 7, 8]
  • bisect.bisect_left()、bisect_right(), 这两个函数用来处理插入重复数值的情况,返回将会插入的位置.

    data = [1, 3, 5, 6, 7, 8]
    bisect.bisect_left(data, 6)   #返回 3
    bisect.bisect_reght(data, 6)   #返回 4
  • bisect.insort_left()、insort_right(), 对应bisect.bisect_left()、bisect_right(), 用来插入数据.

    bisect.insort_left(data, 6)
    print(data)   #返回 [1, 3, 5, 6, 6, 7, 8]  元素`5`后的`6`是新插入的数据
    bisect.insort_reght(data, 6)
    print(data)   #返回 [1, 3, 5, 6, 6, 6, 7, 8] 元素`7`前的`6`是新插入的数据
    #insort_left从左侧插入, insort_reght从右侧插入

    本文链接:时光不写博客-python-bisect

相关文章
|
6月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
813 7
|
6月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
4124 1
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
6月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
518 116
|
6月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
460 109
|
6月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
540 119
|
6月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
585 4
|
6月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
6月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
311 1
|
6月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
678 0

推荐镜像

更多