Over a million developers have joined DZone.

Weighted Random Choice

·
From Kevin Parks's recipe

import random

def w_choice(lst):
	n = random.uniform(0, 1)
	for item, weight in lst:
		if n < weight:
			break
		n = n - weight
	return item

Usage, similar to random.choice but must specify probabilities.

>>> x = w_choice( [('one',0.25), ('two',0.25), ('three',0.5)] )

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}