python之bisect模块, 有序列表插入数据
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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
learning_python_start
初识 Python python 是解释型编程语言。 python 中单行注释: #。 python 中多行注释: 一对三引号,即"""和"""。 python 中提供todo功能,在代码中注明# TODO即可。 变量 变量用于描述计算机中的数据存储空间,作用是在计算机内存中动态地保存数据。 变量名的命名规则是由数字、字母和下划线组成,不能以数字开头,不能是关键字,区分大小写。 变量的书写规范有下划线连接,驼峰命名法等 如 demo_demo = 1 demoDemo = 2 DemoDemo = 3 查看 python 中关键字可用下面的语句,运行结果如图所示。 import keyword print(keyword.kwlist) 标准输入输出 输入:input() 输出:print() %s,字符串占位符 %d,整数占位符 %f,浮点数占位符 %%,输入%\ python运算 字符串运算 +:拼接 *:连续拼接 算术运算符 +,加 -,减 *,乘 /,除 /,整除 %,取余 **,乘方 优先级,乘方 > [乘,除,整除,取余] > [加,减] 赋值运算符 =,赋值 ...
- 下一篇
Python socket 实现服务端和客户端数据传输(TCP)
服务器端 import socket #创建一个socket对象 socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "127.0.0.1" port = 9999 #绑定地址 socket_server.bind((host, port)) #设置监听 socket_server.listen(5) # socket_server.accept()返回一个元组, 元素1为客户端的socket对象, 元素2为客户端的地址(ip地址,端口号) client_socket, address = socket_server.accept() #while循环是为了让对话持续 while True: #接收客户端的请求 recvmsg = client_socket.recv(1024) #把接收到的数据进行解码 strData = recvmsg.decode("utf-8") #设置退出条件 if strData == 'q': break print("接收: %s" % strData) #输...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6