From: Rob Williscroft on
southof40 wrote in news:da3cc892-b6dd-4b37-a6e6-
b606ef9670fa(a)t26g2000prt.googlegroups.com in gmane.comp.python.general:

> 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.

Aside, all your probabilities add up to 1.1, they should add up to 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.

Aside, so 7 / 11 bikes, 3 / 11 cars and 1 / 11 trucks, are your
actual probabilities.

But to answer your question, you could create 3 list, and then
pick the list you draw from based on a random number then pick
the item from the list based on another random number:

r = ( random() * 11 )

if r < 1:
picklist = truck_list
elif r < 4:
picklist = bike_list
else:
picklist = car_list

# now pick the final item from pick list.


Rob.