使用python按概率取数

参考

以指定的概率获取元素

修改为条件不用加起来为1.0

注意使用assert 来防止长度不致!


import random
from collections import defaultdict


def random_pick(lst, pro):
    assert len(lst) == len(pro)
    x = random.randrange(0, sum(pro))
    c_pro= 0.0
    for item, item_prob in zip(lst,pro):
        c_pro += item_prob
        if x < c_pro:
            return item
Loading Disqus comments...
Table of Contents