给定加权范围内的随机整数

时间:2017-07-09 13:03:48

标签: python python-2.7 python-3.x

我已经构建了一个生成器,在给定的加权范围内返回一个随机整数,但我对它的外观并不满意:

from random import choices, randrange

def gen_ranged_weighted_value(ranges, weights):
    while True:
        yield randrange(
           *choices(ranges, weights)[0]
        ) 

这是否有内置功能?我可以写得更好吗?我不想将numpy用于这么简单的任务。

此外,这里有random.choices的替代方案吗?我想构建一个使用Python 2.7.x的版本

用法示例:

foo = gen_ranged_weighted_value([(18,22),(101,201)], [0.98, 0.02])

for a in range(10):
    print(next(foo))

0 个答案:

没有答案