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]
相關文章
- 模組測試
- FLUXION參考滲透測試UX
- Latex—參考文獻
- 參考文獻合集
- Web自動化測試 —— 測試環境搭建 (Selenium+Python) Windows篇WebPythonWindows
- android測試環境搭建Android
- 測試計劃&效能測試分析報告模板(僅供參考)
- 如何搭建良好的軟體測試環境?測試環境對軟體測試起到什麼作用?
- 教材與參考文獻
- 軟體測試培訓:如何搭建測試環境
- 配置開發環境、生成環境、測試環境開發環境
- anaconda建立虛擬環境指定python版本Python
- PyCharm 使用 Anaconda 管理多版本 Python 環境PyCharmPython
- 模擬考試參考程式碼
- 如何使用spring測試模組測試請求功能Spring
- 搭建appium+python自動化測試環境APPPython
- IOS自動化測試環境搭建(Python & Java)iOSPythonJava
- 新手搭建 kubernetes 測試環境
- kaldi環境搭建 | yesno 測試
- Django測試環境準備Django
- Xcode配置測試環境和線上環境XCode
- 單元測試-一份如何寫好單元測試的參考
- Ubuntu20.04伺服器+Anaconda上建立Python3.6虛擬環境Ubuntu伺服器Python
- Python 自動化測試 必會模組 UnittestPython
- 測試模組知識 Tree
- Word交叉引用參考文獻如何更改文獻格式?
- Python sys模組參考手冊Python
- Python os模組參考手冊Python
- 每週一個 Python 模組 | bisectPython
- fio效能測試-環境搭建,功能介紹,測試講解
- 如何在測試環境中實現 API 模擬呼叫API
- Web自動化測試 環境搭建(selenium+python)WebPython
- 搭建自動化測試環境
- Windows配置Delve的測試環境Windows
- 本地測試環境初始化
- griffin環境搭建及功能測試
- 軟體測試--環境講解
- pgbench 壓力測試指令碼作為參考.指令碼