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