def weighted_choices(seq, weights, n):
"""Return random elements from a sequence, according to the given relative weights."""
cum = list(itertools.accumulate(weights, op.add))
return [seq[bisect.bisect_left(cum, random.uniform(0, cum[-1]))] for i in range(n)]
评论列表
文章目录