在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带权重的列表中随机取值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。