Python bisect 模組 (測試版本Python3.6,測試環境Anaconda,參考文獻English:3.7.1rc1)
對於已排序的List資料使用該模組提供的正確方法進行操作之後可以不需要再次排序,節約程式碼執行成本和時間
對於普通序列來説該方法便過於複雜和不適用
如下舉例和函式説明只是以排序好的List舉例
演算法核心:二分法,詳情參考原始碼
PS:本人小白,剛開始自學,先重在使用,再由淺入深,其中有現階段未領悟到的和筆誤,望前輩指出修正 :)
轉載也請註明出處哦~
建立list
>>>import bisect
>>>listTest = [1, 1, 2, 3, 4, 4, 6, 6, 7, 7, 8, 9, 9]
功能函式原型:
1) bisect.bisect_left(a, x, lo = 0, hi = len(a))
函式輸入:
a: 需要被進行搜尋操作的list,在本例中即listTest
x :想要搜尋的值,即list中存放的那些值,也可以是不在list中的值
lo&hi:lo代表搜尋的起始位置,hi表示搜尋的長度,這兩個引數限制了在List中的搜尋區域,預設不輸入參數列示從List頭部開 始,長度為整個List(即表示搜尋整個List)
函式功能:
返回在lo&hi限定區域中,第一個x在a中的位置(假設x存在在a中,不存在的情況可以自己嘗試)
輸入和輸出程式碼:
>>>bisect.bisect_right(listTest, 4)
>>>4
>>>
2) bisect.bisect_right(a, x, lo = 0, hi = len(a)) / bisect.bisect(a, x, lo = 0, hi = len(a))
函式輸入:
a: 需要被進行搜尋操作的list,在本例中即listTest
x :想要搜尋的值,即list中存放的那些值,也可以是不在list中的值
lo&hi:lo代表搜尋的起始位置,hi表示搜尋的長度,這兩個引數限制了在List中的搜尋區域,預設不輸入參數列示從List頭部開 始,長度為整個List(即表示搜尋整個List)
函式功能:
返回在lo&hi限定區域中,最後一個x在a中的位置的後面一個位置(假設x存在在a中,不存在的情況可以自己嘗試)
輸入和輸出程式碼:
>>>bisect.bisect_right(listTest, 4)
>>>6
>>>
>>>bisect.bisect(listTest, 4)
>>>6
>>>
3) bisect.insort_left(a, x, lo = 0, hi = len(a))
函式輸入:
a: 需要被進行插入操作的list,在本例中即listTest
x :需要被插入list的值
lo&hi:lo代表插入起始位置,hi表示長度,這兩個引數限制了在List中的插入區域,預設不輸入參數列示從List頭部開 始,長度為整個List(即表示搜尋整個List)
函式功能:
沒有返回值,在lo&hi限定區域中,將x插入a中使用bisect.bisect_left(a, x, lo = 0, hi = len(a))函式查詢出的位置
輸入和輸出程式碼:
>>>bisect.insort_left(listTest, 4)
>>>print (listTest)
>>>[1, 1, 2, 3, 4, 4, 4, 6, 6, 7, 7, 8, 9, 9]
4) bisect.insort_right(a, x, lo = 0, hi = len(a)) / bisect.insort(a, x, lo = 0, hi = len(a))
函式輸入:
a: 需要被進行插入操作的list,在本例中即listTest
x :需要被插入list的值
lo&hi:lo代表插入起始位置,hi表示長度,這兩個引數限制了在List中的插入區域,預設不輸入參數列示從List頭部開 始,長度為整個List(即表示搜尋整個List)
函式功能:
沒有返回值,在lo&hi限定區域中,將x插入a中使用bisect.bisect_right(a, x, lo = 0, hi = len(a)) / bisect.bisect(a, x, lo = 0, hi = len(a))函式 查詢出的位置
輸入和輸出程式碼:
>>>bisect.insort_right(listTest, 7)
>>>print (listTest)
>>>[1, 1, 2, 3, 4, 4, 4, 6, 6, 7, 7, 7, 8, 9, 9]
>>>
>>>bisect.insort_right(listTest, 8)
>>>print (listTest)
>>>[1, 1, 2, 3, 4, 4, 4, 6, 6, 7, 7, 7, 8, 8, 9, 9]
>>>
>>>bisect.insort_right(listTest, 5)
>>>print (listTest)
>>>[1, 1, 2, 3, 4, 4, 4, 5, 6, 6, 7, 7, 7, 8, 8, 9, 9]
相關文章
- Oracle Audit學習與測試 參考文件Oracle
- opencv python3.6安裝和測試OpenCVPython
- 如何搭建良好的軟體測試環境?測試環境對軟體測試起到什麼作用?
- 軟體測試培訓:如何搭建測試環境
- 配置開發環境、生成環境、測試環境開發環境
- kaldi環境搭建 | yesno 測試
- android測試環境搭建Android
- Web自動化測試 —— 測試環境搭建 (Selenium+Python) Windows篇WebPythonWindows
- 達夢6.0試用之測試環境搭建
- 教材與參考文獻
- 模組測試
- fio效能測試-環境搭建,功能介紹,測試講解
- Xcode配置測試環境和線上環境XCode
- griffin環境搭建及功能測試
- 搭建自動化測試環境
- 軟體測試--環境講解
- 自己營造ORACLE測試環境Oracle
- RAC環境網路故障測試
- 本地測試環境初始化
- IOS自動化測試環境搭建(Python & Java)iOSPythonJava
- 想要軟體測試效果好,搭建好測試環境是前提
- 關於測試環境版本管理(對於衝突檔案)
- 測試測試測試測試測試測試
- 試用Redis安裝、php環境連線、測試RedisPHP
- 測試人員必看!!!軟體測試環境搭建有哪些原則?
- 搭建appium+python自動化測試環境APPPython
- Windows配置Delve的測試環境Windows
- 新手搭建 kubernetes 測試環境
- app 測試環境切換問題APP
- 你真的會搭建測試環境嗎?
- 測試環境運維文章集錦運維
- Windows建立Cucumber和Ruby測試環境Windows
- OCM實驗-測試環境的搭建
- 搭建rac+DataGuard的測試環境
- k8s線上測試環境K8S
- vivo 全鏈路多版本開發測試環境落地實踐
- anaconda建立虛擬環境指定python版本Python
- PyCharm 使用 Anaconda 管理多版本 Python 環境PyCharmPython