Python在字典中獲取帶權(quán)重的隨機值實現(xiàn)方式
更新時間:2022年11月30日 16:34:45 作者:什么都干的派森
這篇文章主要介紹了Python在字典中獲取帶權(quán)重的隨機值,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、前言
python在數(shù)組中隨機取值有現(xiàn)成的方法,但是要給每個隨機值被取到的概率加權(quán)重的話,可以參考下面這個方法
二、實現(xiàn)方式
import random
def random_with_weight(data_dict):
sum_wt = sum(data_dict.values()) # 計算權(quán)重和 sum_wt
ra_wt = random.uniform(0, sum_wt) # 隨機獲取 0-sum_wt 之間的一個浮點數(shù) ra_wt
cur_wt = 0
for key in data_dict.keys():
cur_wt += data_dict[key] # 遍歷并累加當前權(quán)重值
if ra_wt <= cur_wt: # 當隨機數(shù) <= 當前權(quán)重和時,返回權(quán)重對應的key
return key
if __name__ == '__main__':
# 權(quán)重字典
data_dict = {'歷史': 1, '人文': 2, '科學': 8}
# 取十次測試結(jié)果
for _ in range(10):
value = random_with_weight(data_dict)
print(value)
# 歷史
# 科學
# 科學
# 科學
# 科學
# 科學
# 人文
# 科學
# 歷史
# 科學到此這篇關(guān)于Python在字典中獲取帶權(quán)重的隨機值的文章就介紹到這了,更多相關(guān)Python字典權(quán)重隨機值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring http服務遠程調(diào)用實現(xiàn)過程解析
這篇文章主要介紹了Spring http服務遠程調(diào)用實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
python 數(shù)字轉(zhuǎn)換為日期的三種實現(xiàn)方法
在Python中,我們經(jīng)常需要處理日期和時間,本文主要介紹了python 數(shù)字轉(zhuǎn)換為日期的三種實現(xiàn)方法,包含datetime模塊,strftime方法及pandas庫,具有一定的參考價值,感興趣的可以了解一下2024-02-02

