[Python-Dev] [Python-checkins] r86924 - python/branches/py3k/Doc/library/random.rst (original) (raw)
Éric Araujo merwok at netwok.org
Thu Dec 2 13🔞53 CET 2010
- Previous message: [Python-Dev] [Python-checkins] r86924 - python/branches/py3k/Doc/library/random.rst
- Next message: [Python-Dev] ICU
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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(*weightedchoices) + >>> 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
- Previous message: [Python-Dev] [Python-checkins] r86924 - python/branches/py3k/Doc/library/random.rst
- Next message: [Python-Dev] ICU
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]