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

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sun Jun 20 06:53:53 EDT 2010


On Sun, 20 Jun 2010 03:19:55 -0700, southof40 wrote:

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

That adds to a probability of 1.1, which is impossible.

I'm going to assume that bikes is a typo and should be 0.2.


cars = [car1, car2]
bikes = [bike1, bike2, bike3, bike4, bike5, bike6]
trucks = [truck1, truck2, truck3, truck4]

x = random.random()
if x < 0.7:
    return random.choice(cars)
elif x < 0.9:
    return random.choice(bikes)
else:
    return random.choice(trucks)


But surely this is not physically realistic? The probability of selecting 
a car would normally depend on the number of cars, and not be set before 
hand.



-- 
Steven



More information about the Python-list mailing list