On 2/16/14 9:22 AM, Tim Chase wrote:
3) you meant to write "(10, 'apple')" rather than 0. With my original example code, a 0-probability shouldn't ever show up in the sampling, where it looks like it might when using this sample code. In my particular use case, I can limit/ensure that 0-probability items never appear in the list, filtering them upon loading.
Terry didn't state this explicitly, but he restructured your data to have cumulative probabilities.
You had: data = ( ("apple", 20), ("orange", 50), ("grape", 30), ) He turned it into: data = [ (0, 'apple'), (0+20, 'orange'), (0+20+50, 'grape'), ] Each number is the cumulative probability up to but not including the item. -- Ned Batchelder, http://nedbatchelder.com -- https://mail.python.org/mailman/listinfo/python-list