首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python bisect_left

Python bisect_left
EN

Stack Overflow用户
提问于 2021-02-18 04:04:49
回答 2查看 436关注 0票数 0

谁能给我解释一下二等分库中的bisect_left函数到底做了什么?示例:

代码语言:javascript
复制
import bisect
bisect.bisect_left([1,2,3], 2)

此代码将打印“1”。但是这种打印的规则是什么呢?在列表中插入'2‘,因为根据Python文档,它应该“在列表中定位x的插入点(在本例中为2),以保持排序的顺序”。请,也许有人可以提供更多的例子,可以帮助我理解!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-18 04:21:28

bisect开始,一个用途(如here所示)是在一个列表中查找索引,该索引可用于取消对相关列表的引用:

代码语言:javascript
复制
from bisect import bisect

def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
    i = bisect(breakpoints, score)
    return grades[i]

grades = [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]]
print(grades)

输出:

代码语言:javascript
复制
['F', 'A', 'C', 'C', 'B', 'A', 'A']

bisect_left的操作方式与bisect相同,但在“平局”的情况下,它会将索引返回到匹配的“左侧”(例如,上面示例中的70分将使用bisect_left映射到"D“)

票数 4
EN

Stack Overflow用户

发布于 2021-02-18 04:16:01

二等分按排序顺序维护一个列表。如果将项目插入到列表中,列表仍保持其顺序。

由于您的列表已经排序,因此bisect.bisect_left(1,2,3,2)将在列表中的2之后插入项2(因为项2已经存在于列表中)。

你可以在这里找到更多关于“二等分”模块的信息:

https://docs.python.org/3/library/bisect.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66249194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档