Pick items from list with probability based upon property of list member ?

southof40 shearichard at gmail.com
Mon Jun 21 06:04:16 EDT 2010


On Jun 20, 10:58 pm, Cameron Simpson <c... at zip.com.au> wrote:
> On 20Jun2010 12:44, Stefan Behnel <stefan... at behnel.de> wrote:
> | southof40, 20.06.2010 12:19:
> | >I have list of of N Vehicle objects - the only possible vehicles are
> | >cars, bikes, trucks.
> | >
> | >I want to select an object from the list with a probability of : cars
> | >0.7, bikes 0.3, trucks 0.1.
> | >
> | >I've currently implemented this by creating another list in which each
> | >car object from the original list appears 7 times, each bike 3 times
> | >and each truck once. I then pick at random from that list.
> | >
> | >This works but seems very clunky to me.
> |
> | Why? It's a very simple, generic, easy to understand and fast
> | solution to the problem.
>
> Only 3 out of 4, if you want to be precise in your selections.
> Supposing he wants probabilities 0.7432, 0.3765, 0.1087654 ?
> The required list needs to be Very Long to achieve an accurate
> representation, and thus Very Slow to construct/populate.
>

Yes you're spot on here. Although I have used simple probabilities it
occurred to me that the list for my current method would get pretty
big if I changed the probs to be a little more refined.




More information about the Python-list mailing list