在python带权重的列表中随机取值的方法
1random.choice
pythonrandom模块的choice方法随机选择某个元素
foo=['a','b','c','d','e'] fromrandomimportchoice printchoice(foo)
2random.sample
使用pythonrandom模块的sample函数从列表中随机选择一组元素
list=[1,2,3,4,5,6,7,8,9,10] slice=random.sample(list,5)#从list中随机获取5个元素,作为一个片断返回 printslice printlist#原有序列并没有改变。
3python带权重的随机取值
importrandom
defrandom_weight(weight_data):
total=sum(weight_data.values())#权重求和
ra=random.uniform(0,total)#在0与权重和之前获取一个随机数
curr_sum=0
ret=None
keys=weight_data.iterkeys()#使用Python2.x中的iterkeys
#keys=weight_data.keys()#使用Python3.x中的keys
forkinkeys:
curr_sum+=weight_data[k]#在遍历中,累加当前权重值
ifra<=curr_sum:#当随机数<=当前权重和时,返回权重key
ret=k
break
returnret
weight_data={'a':10,'b':15,'c':50}
random_weight(weight_data)
以上这篇在python带权重的列表中随机取值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。