一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python bisect模塊原理及常見實例

Python bisect模塊原理及常見實例

2020-06-18 09:38后來者2012 Python

這篇文章主要介紹了Python bisect模塊原理及常見實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1. 模塊介紹

1. bisect模塊為內置標準庫,它實現了二分法查找算法(只要提到二分法查找,應該優先想到此模塊)

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

2. 常用方法介紹

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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函數會默認返回右側的位置索引,同時bisect函數是bisect_right函數的別名。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import bisect
 
# 已知一個有序序列
ordered_list = [23, 34, 34, 59, 78, 99]
 
# bisect函數默認返回右側的位置索引
des_element = 34
res = bisect.bisect(ordered_list, des_element)
print(res) # res: 3
 
# bisect函數為bisect_right函數的別名
des_element = 34
res = bisect.bisect_right(ordered_list, des_element)
print(res) # res: 3
 
# bisect_left函數默認返回左側的位置索引
des_element = 34
res = bisect.bisect_left(ordered_list, des_element)
print(res) # res: 1

說明:如果目標元素會在已知有序列表中多次出現,那么目標元素從已知有序列表的左側或右側插入時結果是不同的。

3. 場景應用

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'''
  考試成績的檔位劃分,共分為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:
 
  # 校驗:分數范圍
  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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/reconova-56/p/13124630.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲欧美成人综合久久久 | 四虎成人免费观看在线网址 | 水多多www视频在线观看高清 | 色综合天天综合网看在线影院 | 亚洲国产精品综合欧美 | 免费xxxxx大片在线观看影视 | 四虎永久免费地址在线网站 | 久久视频在线视频 | 免费亚洲成人 | 91制片在线观看 | 吻戏辣妞范1000免费体验 | 国产激情视频网站 | 日本高清在线精品一区二区三区 | 精灵之森高清在线 | 黑人巨大初黑人解禁作品 | 毛片免费毛片一级jjj毛片 | 日本中文字幕黑人借宿影片 | 国产精品香蕉夜间视频免费播放 | 99在线精品免费视频九九视 | 日韩一区在线播放 | 成人影院在线观看视频 | 91在线精品国产丝袜超清 | 亚洲国产欧美日韩在线一区 | 欧美在线视频免费播放 | 国产新疆成人a一片在线观看 | 免费看打屁股视频的软件 | 国产大片51精品免费观看 | 爽好舒服使劲添高h视频 | 挺进白嫩老师下面视频 | 欧美性另类69xxxx | 精品亚洲456在线播放 | 免费观看在线永久免费xx视频 | 国产精品麻豆 | 亚洲国产韩国欧美在线不卡 | 1024国产高清精品推荐 | 动漫人物差差差动漫人物免费观看 | 97涩色| 亚洲AV 无码AV 中文字幕 | 亚洲午夜精品久久久久 | 北海市副市长黄江老公 | 国产未成女年一区二区 |