2024-05-21 01:09:55 发布
网友
有人能给我解释一下二分法库中的二分法左函数实际上是做什么的吗?例如:
import bisect bisect.bisect_left([1,2,3], 2)
此代码将打印“1”。但这种印刷的规则是什么?是在列表中插入的“2”,因为根据Python文档,它应该“在列表中定位x的插入点(在本例中为2)以保持排序顺序”。请,也许有人可以提供更多的例子,可以帮助我理解!谢谢大家!
从bisect开始,一个用途(如图here)是在一个列表中找到一个索引,该索引可用于取消引用相关列表:
bisect
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)
输出:
['F', 'A', 'C', 'C', 'B', 'A', 'A']
bisect_left的操作方式与bisect相同,但在“平局”的情况下,它会将索引返回到匹配的“左侧”(例如,上面示例中的70分将使用bisect_left映射到“D”)
bisect_left
对分按排序顺序维护列表。如果在列表中插入项目,列表仍保持其顺序
由于您的列表已排序, 对分。对分_left([1,2,3],2)将在列表中的2之后插入项目2(因为项目2已存在于列表中)
您可以在此处找到有关“对分”模块的更多信息:
https://docs.python.org/3/library/bisect.html
从
bisect
开始,一个用途(如图here)是在一个列表中找到一个索引,该索引可用于取消引用相关列表:输出:
bisect_left
的操作方式与bisect
相同,但在“平局”的情况下,它会将索引返回到匹配的“左侧”(例如,上面示例中的70分将使用bisect_left
映射到“D”)对分按排序顺序维护列表。如果在列表中插入项目,列表仍保持其顺序
由于您的列表已排序, 对分。对分_left([1,2,3],2)将在列表中的2之后插入项目2(因为项目2已存在于列表中)
您可以在此处找到有关“对分”模块的更多信息:
https://docs.python.org/3/library/bisect.html
相关问题 更多 >
编程相关推荐