在python帶權(quán)重的列表中隨機取值的方法
1 random.choice
python random模塊的choice方法隨機選擇某個元素
foo = ['a', 'b', 'c', 'd', 'e'] from random import choice print choice(foo)
2 random.sample
使用python random模塊的sample函數(shù)從列表中隨機選擇一組元素
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #從list中隨機獲取5個元素,作為一個片斷返回 print slice print list #原有序列并沒有改變。
3 python帶權(quán)重的隨機取值
import random
def random_weight(weight_data):
total = sum(weight_data.values()) # 權(quán)重求和
ra = random.uniform(0, total) # 在0與權(quán)重和之前獲取一個隨機數(shù)
curr_sum = 0
ret = None
keys = weight_data.iterkeys() # 使用Python2.x中的iterkeys
# keys = weight_data.keys() # 使用Python3.x中的keys
for k in keys:
curr_sum += weight_data[k] # 在遍歷中,累加當(dāng)前權(quán)重值
if ra <= curr_sum: # 當(dāng)隨機數(shù)<=當(dāng)前權(quán)重和時,返回權(quán)重key
ret = k
break
return ret
weight_data = {'a': 10, 'b': 15, 'c': 50}
random_weight(weight_data)
以上這篇在python帶權(quán)重的列表中隨機取值的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
下載python中Crypto庫報錯:ModuleNotFoundError: No module named ‘Cry
Crypto不是自帶的模塊,需要下載。下面這篇文章主要給大家介紹了關(guān)于下載python中Crypto庫報錯:ModuleNotFoundError: No module named 'Crypto'的解決方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下。2018-04-04
Python利用前序和中序遍歷結(jié)果重建二叉樹的方法
這篇文章主要介紹了Python利用前序和中序遍歷結(jié)果重建二叉樹的方法,實例分析了Python二叉樹的定義與遍歷操作技巧,需要的朋友可以參考下2016-04-04
python圖像處理-利用一行代碼實現(xiàn)灰度圖摳圖
這篇文章主要介紹了python圖像處理-利用一行代碼實現(xiàn)灰度圖摳圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Python使用django搭建web開發(fā)環(huán)境
這篇文章主要為大家詳細介紹了Python使用django搭建web開發(fā)環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
Python全棧之文件函數(shù)和函數(shù)參數(shù)
這篇文章主要為大家介紹了Python的文件函數(shù)和函數(shù)參數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12
Python使用xlrd模塊實現(xiàn)操作Excel讀寫的方法匯總
本文介紹Python中使用xlrd、xlwt、xlutils模塊操作Excel文件的方法,xlrd用于讀取Excel文件,但2.0.0版本后不支持.xlsx格式,xlwt用于創(chuàng)建和寫入Excel文件,而xlutils主要用于復(fù)制和處理Excel文件,詳細介紹了如何打開文件、獲取工作表信息、操作行列數(shù)據(jù)和處理日期格式數(shù)據(jù)2024-10-10

