On Jun 20, 10:55 pm, Rob Williscroft <r...@rtw.me.uk> wrote: > 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.
thanks also - nice clean solution -- http://mail.python.org/mailman/listinfo/python-list