On Sun, 11 Feb 2007 22:20:24 -0800, Paul Rubin wrote:

> Steven D'Aprano <[EMAIL PROTECTED]> writes:
>> If you want to avoid shuffle, here's an alternative:
>> 
>> def random_values(n, valuelist=[True, False]):
>>     N = len(valuelist)
>>     for _ in range(N*n):
>>          yield valuelist[random.randrange(0, N)]
> 
> That is not guaranteed to yield exactly equal numbers of true and false.

Neither is any random number generator. That's why because it's *random*.

Ah, I see what you mean... you're reminding me that the Original Poster
seems to want a biased set of almost-but-not-quite-randomly chosen
values, so that random_values(1) must return one each of True and False
and never True, True or False, False.

You're right, that's how the O.P. implicitly specified the problem. But it
may not be what he wants.



-- 
Steven D'Aprano 

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

Reply via email to