[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