最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python bisect模塊原理及常見實(shí)例

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

1. 模塊介紹

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

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

2. 常用方法介紹

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

import bisect

# 已知一個(gè)有序序列
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ù)會(huì)默認(rèn)返回右側(cè)的位置索引,同時(shí)bisect函數(shù)是bisect_right函數(shù)的別名。

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

import bisect

# 已知一個(gè)有序序列
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)元素會(huì)在已知有序列表中多次出現(xiàn),那么目標(biāo)元素從已知有序列表的左側(cè)或右側(cè)插入時(shí)結(jié)果是不同的。

3. 場(chǎng)景應(yīng)用

場(chǎng)景1:替代if-elif語句,例如:判斷考生成績(jī)所屬的等級(jí)問題。

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

import bisect


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

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

  # 邊界點(diǎn)考慮
  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

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

相關(guān)文章

最新評(píng)論

彭阳县| 商南县| 夏河县| 阜新| 建德市| 江陵县| 道孚县| 泸定县| 南宁市| 峡江县| 荆门市| 乌审旗| 琼中| 馆陶县| 玉树县| 凤凰县| 滕州市| 长沙市| 东丰县| 两当县| 隆昌县| 建宁县| 吉林省| 土默特右旗| 富顺县| 明水县| 且末县| 钦州市| 满洲里市| 民乐县| 沅江市| 循化| 咸宁市| 伊宁市| 乌兰浩特市| 昌江| 天长市| 凤山市| 青阳县| 延津县| 平昌县|