没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Python bisect模块原理及常见实例模块原理及常见实例
主要介绍了Python bisect模块原理及常见实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
一定的参考学习价值,需要的朋友可以参考下
1. 模块介绍模块介绍
1. bisect模块为内置标准库,它实现了二分法查找算法(只要提到二分法查找,应该优先想到此模块)
2. 主要包含有两个函数:bisect函数(查找元素)和insort函数(插入元素)。
2. 常用方法介绍常用方法介绍
场景1:已知一个有序列表,查找目标元素的位置索引
import bisect
# 已知一个有序序列
ordered_list = [23, 34, 59, 78, 99]
des_element = 21
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 0
des_element = 35
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 2
说明:bisect函数会默认返回右侧的位置索引,同时bisect函数是bisect_right函数的别名。
场景2:已知一个有序列表,其中列表中有重复元素,查找目标元素的位置索引
import bisect
# 已知一个有序序列
ordered_list = [23, 34, 34, 59, 78, 99]
# bisect函数默认返回右侧的位置索引
des_element = 34
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 3
# bisect函数为bisect_right函数的别名
des_element = 34
res = bisect.bisect_right(ordered_list, des_element)
print(res) # res: 3
# bisect_left函数默认返回左侧的位置索引
des_element = 34
res = bisect.bisect_left(ordered_list, des_element)
print(res) # res: 1
说明:如果目标元素会在已知有序列表中多次出现,那么目标元素从已知有序列表的左侧或右侧插入时结果是不同的。
3. 场景应用场景应用
场景1:替代if-elif语句,例如:判断考生成绩所属的等级问题。
'''
考试成绩的档位划分,共分为5个等级:
1. F等级:[0, 60)
2. D等级:[60, 70)
3. C等级:[70, 80)
4. B等级:[80, 90)
5. A等级:[90, 100]
'''
import bisect
def get_result(score: (int, float), score_nodes: list = [60, 70, 80, 90], ranks='FDCBA') -> str:
# 校验:分数范围
if score < 0 or score >100:
return "score的取值范围:0-100"
# 边界点考虑
资源评论
weixin_38702844
- 粉丝: 2
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计求职招聘系统-SpringBoot+vue前后端源码+数据库sql.zip
- 利用Rosweb实现ros与网页交互(1)
- 基于卷积神经网络的医学病理图像识别源码+数据集+详细资料合集.zip
- 基于树莓派的自动驾驶小车,利用树莓派和tensorflow实现小车在赛道的自动驾驶
- 前端面试必备 - Vue篇.rar
- LM324_datasheet.pdf
- 全新Storm+Core+API管理系统源码
- 基于RP2040的电子沙漏,使用RP2040游戏机开发板,灯板是74HC595驱动的8*8LED矩阵
- 基于SSM和VUE的商店POS积分管理系统(免费提供全套java开源项目源码+论文)
- 基于SpringBoot的“在线动漫信息平台”的设计与实现.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功