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)文章
keras分類之二分類實(shí)例(Cat and dog)
這篇文章主要介紹了keras分類之二分類實(shí)例(Cat and dog),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07基于Python編寫一個(gè)中秋節(jié)嫦娥投食小游戲
今天給大家?guī)?lái)的是給玉兔投喂月餅的小游戲。八月十五中秋夜晚,讓我們對(duì)著月亮許愿:希望我們?cè)谝夂驮谝馕覀兊娜?,諸邪避退、百事無(wú)忌、平安喜樂(lè)、萬(wàn)事勝意。提前祝大家中秋節(jié)快樂(lè)2022-09-09Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python中合并兩個(gè)文本文件并按照姓名首字母排序的例子
這篇文章主要介紹了python中合并兩個(gè)文本文件并按照姓名首字母排序的例子,需要的朋友可以參考下2014-04-04寫了個(gè)監(jiān)控nginx進(jìn)程的Python腳本
接上一文用iptables讓SSH服務(wù)對(duì)陌生人說(shuō)不。還是有點(diǎn)擔(dān)心這個(gè)學(xué)期內(nèi),nginx可能會(huì)因?yàn)橄到y(tǒng)各種原因而出現(xiàn)異常退出,導(dǎo)致Web服務(wù)暫停。所以,又來(lái)了一個(gè)方案2012-05-05python 數(shù)字轉(zhuǎn)換為日期的三種實(shí)現(xiàn)方法
在Python中,我們經(jīng)常需要處理日期和時(shí)間,本文主要介紹了python 數(shù)字轉(zhuǎn)換為日期的三種實(shí)現(xiàn)方法,包含datetime模塊,strftime方法及pandas庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02