二元搜索-左等分和右等分,比较更灵活

bsearch的Python项目详细描述


b搜索

Build StatusPyPI shield

Python中的二进制搜索,具有更灵活的比较。

安装

pip install bsearch

用法

bisect_leftbisect_rightbisect库向后兼容。例如:

frombsearchimportbisect_lefta=[1,2,3,4,5]i=bisect_left(a,4)# returns 3

您可以使用key选项搜索不同类型的数组

frombsearchimportbisect_lefta=[(1,100),(2,100),(5,200)]# using the first element of the tuple as the keyi=bisect_left(a,2,key=lambdax:x[0])# returns 1

要搜索降序列表,请使用包装器binary_search,并提供一个运算符。这将返回最小的i,以便op(a[i], v)

frombsearchimportbinary_searcha=[5,4,3,2]i=binary_search(a,4,op=lambdaab:a>=b)# returns 1

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量