欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python bisect模塊原理及常見實例

 更新時間:2020年06月17日 15:04:31   作者:后來者2012  
這篇文章主要介紹了Python bisect模塊原理及常見實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

1. 模塊介紹

1. bisect模塊為內(nèi)置標(biāo)準(zhǔn)庫,它實現(xiàn)了二分法查找算法(只要提到二分法查找,應(yīng)該優(yōu)先想到此模塊)

2. 主要包含有兩個函數(shù):bisect函數(shù)(查找元素)和insort函數(shù)(插入元素)。

2. 常用方法介紹

場景1:已知一個有序列表,查找目標(biāo)元素的位置索引

import bisect

# 已知一個有序序列
ordered_list = [23, 34, 59, 78, 99]

des_element = 21
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 0

des_element = 35
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 2

說明:bisect函數(shù)會默認(rèn)返回右側(cè)的位置索引,同時bisect函數(shù)是bisect_right函數(shù)的別名。

場景2:已知一個有序列表,其中列表中有重復(fù)元素,查找目標(biāo)元素的位置索引

import bisect

# 已知一個有序序列
ordered_list = [23, 34, 34, 59, 78, 99]

# bisect函數(shù)默認(rèn)返回右側(cè)的位置索引
des_element = 34
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 3

# bisect函數(shù)為bisect_right函數(shù)的別名
des_element = 34
res = bisect.bisect_right(ordered_list, des_element)
print(res) # res: 3

# bisect_left函數(shù)默認(rèn)返回左側(cè)的位置索引
des_element = 34
res = bisect.bisect_left(ordered_list, des_element)
print(res) # res: 1

說明:如果目標(biāo)元素會在已知有序列表中多次出現(xiàn),那么目標(biāo)元素從已知有序列表的左側(cè)或右側(cè)插入時結(jié)果是不同的。

3. 場景應(yīng)用

場景1:替代if-elif語句,例如:判斷考生成績所屬的等級問題。

'''
  考試成績的檔位劃分,共分為5個等級:
    1. F等級:[0, 60)
    2. D等級:[60, 70)
    3. C等級:[70, 80)
    4. B等級:[80, 90)
    5. A等級:[90, 100]
'''

import bisect


def get_result(score: (int, float), score_nodes: list = [60, 70, 80, 90], ranks='FDCBA') -> str:

  # 校驗:分?jǐn)?shù)范圍
  if score < 0 or score >100:
    return "score的取值范圍:0-100"

  # 邊界點考慮
  if int(score) == 100:
    return "A"

  loc_index = bisect.bisect(score_nodes, score)
  return ranks[loc_index]

print(get_result(50))    # res: F
print(get_result(60))    # res: D
print(get_result(85.5))   # res: B
print(get_result(100))   # res: A

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 解析XML文件

    Python 解析XML文件

    google一篇關(guān)于Python解析XML文件的博文不過XML文件出錯,整理如下。
    2009-04-04
  • Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法

    Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法

    這篇文章主要介紹了Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法,相關(guān)import語句和input函數(shù)的使用是Python入門學(xué)習(xí)中的基礎(chǔ)知識, 需要的朋友可以參考下
    2015-10-10
  • 使用Atom支持基于Jupyter的Python開教程詳解

    使用Atom支持基于Jupyter的Python開教程詳解

    這篇文章主要介紹了使用Atom支持基于Jupyter的Python開發(fā),Vscode雖然說也有連接Jupyter的工具,但是交互式的開發(fā)Hydrogen體驗更好,需要的朋友可以參考下
    2021-08-08
  • 使用python?scrapy爬取天氣并導(dǎo)出csv文件

    使用python?scrapy爬取天氣并導(dǎo)出csv文件

    由于工作需要,將爬蟲的文件要保存為csv,以前只是保存為json,下面這篇文章主要給大家介紹了關(guān)于如何使用python?scrapy爬取天氣并導(dǎo)出csv文件的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • python3.x讀寫文件及BOM處理詳解

    python3.x讀寫文件及BOM處理詳解

    這篇文章主要為大家詳細(xì)介紹了python3.x讀寫文件及BOM處理的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • python3 常見解密加密算法實例分析【base64、MD5等】

    python3 常見解密加密算法實例分析【base64、MD5等】

    這篇文章主要介紹了python3 常見解密加密算法,結(jié)合實例形式分析了Python的base64模塊加密,以及基于pycrypto模塊的MD5加密等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Python實現(xiàn)批量向PDF文件添加中文水印

    Python實現(xiàn)批量向PDF文件添加中文水印

    本文將通過設(shè)置批量PDF文件所在的路徑及需要添加的水印名稱,從而實現(xiàn)批量添加PDF水印的效果。感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-02-02
  • Python語法糖for?else循環(huán)語句里的break使用詳解

    Python語法糖for?else循環(huán)語句里的break使用詳解

    這篇文章主要介紹了Python語法糖之for?else循環(huán)語句里的break使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 淺析python 動態(tài)庫m.so.1.0錯誤問題

    淺析python 動態(tài)庫m.so.1.0錯誤問題

    這篇文章主要介紹了python 動態(tài)庫m.so.1.0錯誤問題,文中給大家提到了python中使用動態(tài)庫的方法,通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python集合union()函數(shù)使用實例詳解

    Python集合union()函數(shù)使用實例詳解

    union()方法的工作原理是:返回多個集合(集合的數(shù)量大于等于2)的并集,即結(jié)果集合包含了所有被合并集合中的所有元素,因為集合中的元素不可重復(fù),所以各個集合中重復(fù)的元素在結(jié)果集合中只會出現(xiàn)一次,本文將簡單介紹一下Python union()函數(shù)使用方法
    2023-07-07

最新評論