日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python bisect模块二分法查找

發布時間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 python bisect模块二分法查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#!/usr/bin/env python  
# encoding: utf-8
import bisect
import sys
#將一個元素插入到一個有序列表的合適位置
#使用這個模塊的函數前先確保操作的列表是已排序的。
list=[2,1,3,4,2,4,6,6,62,1]
list.sort()
new_list=bisect.insort(list,7)#后面的這個參數表示 元素7應該出現在列表的位置,
left_list=bisect.insort_left(list,7)#后面的這個參數表示 元素7應該出現在列表的位置,如果重復插入在左邊
right_list=bisect.insort_right(list,7)#后面的這個參數表示 元素7應該出現在列表的位置,如果重復插入在右邊
left_postion=bisect.bisect_left(list,7)
right_postion=bisect.bisect_right(list,7)#返回出現數字的右側位置,如果不存在則獲取應該插入到列表的右側位置(一般用于原列表有該數據的時候)
#
# print(list) #結果[1, 1, 2, 2, 3, 4, 4, 6, 6, 7, 62]
#
# print(new_list)  #insort方法不會產生新的列表,輸出為None
# print(left_list) #insort_left方法不會產生新的列表,輸出為None
# print(right_list) #insort_left方法不會產生新的列表,輸出為None
print(right_postion)
#  bisect_left 和 bisect_right 函數,該函數用入處理將會插入重復數值的情況,返回將會插入的位置

  相當于下面的代碼

#!/usr/bin/env python  
# encoding: utf-8
import math
#給定一個list用二分法查出現的位置,前提排好序了
def binary_search_loop(lst,value):
    low,hight=0,len(lst)-1  #列表中元素的坐標
    while low<=hight:
        mid=math.floor((low+hight)/2) #向下取整
        #如果中間這個數小于指定數字,則網上查找
        if lst[mid]<value:
            low=mid+1
        elif lst[mid]>value:
            hight=mid-1
        else:
            return mid
    return  None



print(binary_search_loop([1,2,3,4,5,6,7,8,9,11],8))

  

關于二分法查找的知識,點擊我

總結

以上是生活随笔為你收集整理的python bisect模块二分法查找的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。