southof40 wrote in news:da3cc892-b6dd-4b37-a6e6-
b606ef967...@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.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to