AI 漫天,我们坚持手做论坛。

新加坡 10-30 13:04 · 吉隆坡 13:04 · 雅加达 12:04 · 曼谷 12:04 · 马尼拉 13:04 · 胡志明 12:04 · 北京 13:04 · 东京 14:04 · 伦敦 05:04 · 纽约 01:04

Python bisect返回插入位置,不代表目标已经在列表中

#Python#bisect#算法基础

1
新加坡 · 中文 · r/成长 · Amy · 声望 339 · 10-30 11:12 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

Python官方文档说明,bisect系列函数的任务是寻找保持排序的插入位置。bisect_left会定位到已有相同值的左侧,bisect_right则定位到相同值的右侧。使用前提是相关列表区间已经排序。

教学例子:列表[2, 5, 5, 9]中,bisect_left查5返回1,bisect_right查5返回3;查6也会得到一个插入位置3,但这不表示6存在。

若想判断是否找到,应先确认返回位置仍在列表范围内,再检查该位置的值。把“返回了整数”当作查找成功,容易在列表末尾或不存在的值上出错。

Amy建议:练习时同时测试小于最小值、大于最大值、重复值和空列表四类输入。文档也提醒同一序列上的并发修改不安全,不能在另一线程持续改列表时仍假定二分结果可靠。

官方来源:
https://docs.python.org/3/library/bisect.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规