python指定概率选择元素_004_021 Python 以指定的概率获取元素 以一个列表为基准概率,从一个列表中随机获取元素...

代码如下:

#encoding=utf-8

print '中国'

#以指定的概率获取元素 以一个列表为基准概率,从一个列表中随机获取元素

import random

def random_pick(some_list, probabilities):

x = random.uniform(0,1)

cumulative_probability = 0.0

for item, item_probability in zip(some_list, probabilities):

cumulative_probability += item_probability

if x < cumulative_probability:break

return item

some_list = [1,2,3,4]

probabilities = [0.2,0.1,0.6,0.1]

print random_pick(some_list,probabilities)

#根据权重来获取 核心在于权重乘以 就相当于次数

def random_pick_odd(some_list, odds):

print 'table2'

table = [z for x,y in zip(some_list,odds) for z in [x] * y]

print table

return random.choice(table)

some_list = [1,2,3,4]

odds=[3,1,4,2]

print random_pick_odd(some_list,odds)

#for item in random_picks()

打印结果如下:

中国

1

table2

[1, 1, 1, 2, 3, 3, 3, 3, 4, 4]

4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值