[Python-Dev] [Python-checkins] r86924 - python/branches/py3k/Doc/library/random.rst
Éric Araujo
merwok at netwok.org
Thu Dec 2 13:18:53 CET 2010
> On Thu, Dec 2, 2010 at 12:41 PM, raymond.hettinger
> <python-checkins at python.org> wrote:
>> +A more general approach is to arrange the weights in a cumulative probability
>> +distribution with :func:`itertools.accumulate`, and then locate the random value
>> +with :func:`bisect.bisect`::
>> +
>> + >>> choices, weights = zip(*weighted_choices)
>> + >>> cumdist = list(itertools.accumulate(weights))
>> + >>> x = random.random() * cumdist[-1]
>> + >>> choices[bisect.bisect(cumdist, x)]
>> + 'Blue'
“pydoc bisect.bisect” is empty (“Alias for bisect_right()”); in the
code, bisect.bisect is noted as compatibility alias. Wouldn’t it be
more helpful to use the newer name?
Regards
More information about the Python-Dev
mailing list