Python在字典中獲取帶權(quán)重的隨機(jī)值實(shí)現(xiàn)方式
一、前言
python在數(shù)組中隨機(jī)取值有現(xiàn)成的方法,但是要給每個(gè)隨機(jī)值被取到的概率加權(quán)重的話,可以參考下面這個(gè)方法
二、實(shí)現(xiàn)方式
import random
def random_with_weight(data_dict):
sum_wt = sum(data_dict.values()) # 計(jì)算權(quán)重和 sum_wt
ra_wt = random.uniform(0, sum_wt) # 隨機(jī)獲取 0-sum_wt 之間的一個(gè)浮點(diǎn)數(shù) ra_wt
cur_wt = 0
for key in data_dict.keys():
cur_wt += data_dict[key] # 遍歷并累加當(dāng)前權(quán)重值
if ra_wt <= cur_wt: # 當(dāng)隨機(jī)數(shù) <= 當(dāng)前權(quán)重和時(shí),返回權(quán)重對(duì)應(yīng)的key
return key
if __name__ == '__main__':
# 權(quán)重字典
data_dict = {'歷史': 1, '人文': 2, '科學(xué)': 8}
# 取十次測(cè)試結(jié)果
for _ in range(10):
value = random_with_weight(data_dict)
print(value)
# 歷史
# 科學(xué)
# 科學(xué)
# 科學(xué)
# 科學(xué)
# 科學(xué)
# 人文
# 科學(xué)
# 歷史
# 科學(xué)到此這篇關(guān)于Python在字典中獲取帶權(quán)重的隨機(jī)值的文章就介紹到這了,更多相關(guān)Python字典權(quán)重隨機(jī)值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python連接clickhouse數(shù)據(jù)庫(kù)的兩種方式小結(jié)
這篇文章主要介紹了python連接clickhouse數(shù)據(jù)庫(kù)的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python中的Joblib庫(kù)使用學(xué)習(xí)總結(jié)
這篇文章主要介紹了Python中的Joblib庫(kù)使用學(xué)習(xí)總結(jié),Joblib是一組在Python中提供輕量級(jí)流水線的工具,Joblib已被優(yōu)化得很快速,很健壯了,特別是在大數(shù)據(jù)上,并對(duì)numpy數(shù)組進(jìn)行了特定的優(yōu)化,需要的朋友可以參考下2023-08-08
python帶參數(shù)裝飾器的兩種寫(xiě)法示例代碼
裝飾器是 Python 中非常有用的語(yǔ)法特性,可以用于包裝或者修改函數(shù)的行為,本文介紹了python帶參數(shù)裝飾器的兩種寫(xiě)法,需要的朋友可以參考下2023-08-08
Python異步庫(kù)asyncio、aiohttp詳解
這篇文章主要介紹了Python異步庫(kù)asyncio、aiohttp使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
pycharm引入其他目錄的包報(bào)錯(cuò),import報(bào)錯(cuò)的解決
這篇文章主要介紹了pycharm引入其他目錄的包報(bào)錯(cuò),import報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
python使用xlrd實(shí)現(xiàn)檢索excel中某列含有指定字符串記錄的方法
這篇文章主要介紹了python使用xlrd實(shí)現(xiàn)檢索excel中某列含有指定字符串記錄的方法,涉及Python使用xlrd模塊檢索Excel的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
使用PyTorch將數(shù)據(jù)從CPU移動(dòng)到GPU的四個(gè)方法
這篇文章給大家介紹了在 PyTorch 中,將數(shù)據(jù)從 CPU 移動(dòng)到 GPU 的幾種方法,使用 .to() 方法,使用 .cuda() 方法,使用 torch.Tensor 構(gòu)造函數(shù)和使用 torch.tensor 構(gòu)造函數(shù)這四個(gè)方法,通過(guò)代碼示例介紹非常詳細(xì),需要的朋友可以參考下2024-01-01
初學(xué)者學(xué)習(xí)Python好還是Java好
在本篇文章里小編給大家分享的是關(guān)于初學(xué)者學(xué)習(xí)Python好還是Java好的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-05-05

