专做企业的p2p网站,基于wordpress的博客,公司做网站宣传怎么做,中文儿童网站模板bisect_left(nums,target),bisect_right(nums,target)是python内置的函数#xff0c;可以便捷的帮我们完成一些有序序列的查找工作#xff0c;现在将用三个样例进行讲解演示
前提注意事项#xff1a;
导入函数模块
待处理序列必须有序#xff01;#xff01;#xff0…
bisect_left(nums,target),bisect_right(nums,target)是python内置的函数可以便捷的帮我们完成一些有序序列的查找工作现在将用三个样例进行讲解演示
前提注意事项
导入函数模块
待处理序列必须有序
from bisect import bisect_left,bisect_right
nums[1,23,5,4,6,547,4,4,7,81,2]
# 注意使用前必须是有序数组
nums.sort()
这里以列表nums[1,23,5,4,6,547,4,4,7,81,2] 为例
case 1
target3 不在nums中
目标数不在数组中bisect_left()和bisect_right()返回相同的结果
该结果是target在nums中 “合适的插入点索引使得数组有序”。
此时nums[res1] xnums[res2] x。
target3
res1bisect_left(nums,target)
res2bisect_right(nums,target)
print(f排序后数组为:{nums})
print(f待查找数字为:{target})
print(fbisect_left{res1};bisect_right{res2})
结果
排序后数组为:[1, 2, 4, 4, 4, 5, 6, 7, 23, 81, 547]
待查找数字为:3
bisect_left2;bisect_right2
case 2
target7 在nums中仅存在一个
数组中只有一个待查找数字
bisect_left的值是target在nums中的索引
nums[res1] target。
bisect_right的值是target在nums中的索引加1
nums[res2] target。
target7
res1bisect_left(nums,target)
res2bisect_right(nums,target)
print(f排序后数组为:{nums})
print(f待查找数字为:{target})
print(fbisect_left{res1};bisect_right{res2})
结果
排序后数组为:[1, 2, 4, 4, 4, 5, 6, 7, 23, 81, 547]
待查找数字为:7
bisect_left7;bisect_right8
case 3
targe4 在nums中多次出现
如果列表中存在多个元素等于target
bisect_left()返回最左边第一次出现位置的那个索引
nums[res1] target。
bisect_right()返回最右边最后一次出现位置的那个索引加1
nums[res2] target。
target4
res1bisect_left(nums,target)
res2bisect_right(nums,target)
print(f排序后数组为:{nums})
print(f待查找数字为:{target})
print(fbisect_left{res1};bisect_right{res2})
结果
排序后数组为:[1, 2, 4, 4, 4, 5, 6, 7, 23, 81, 547]
待查找数字为:4
bisect_left2;bisect_right5