On Mar 11, 2006, at 3:24 PM, [EMAIL PROTECTED] wrote:

>
> Message: 1
> Date: Sat, 11 Mar 2006 08:34:49 -0500
> From: Kent Johnson <[EMAIL PROTECTED]>
> Subject: Re: [Tutor] weighted choices from among many lists
> Cc: tutor@python.org
> Message-ID: <[EMAIL PROTECTED]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> kevin parks wrote:
>> I have several lists... and i would like to some times chose from one
>> list and for a while choose from a different list, etc.
>
> You don't say what isn't working but I have a guess. The actual 
> windex()
> function looks OK to me.

yes, that part always worked fine... not the most robust thing, but it 
works.


>
>> def test():
>>
>>      lst_a = [ 'red', 'green', 'blue', 'orange', 'violet', 'yellow',
>> 'black', 'white' ]
>>      lst_b = ['Rottweiler', 'Beagle', 'Sheepdog', 'Collie', 'Boxer',
>> 'Terrier', 'Bulldog', 'Chihuahua', 'Retriever', 'Collie', 'Dachshund',
>> 'Doberman', 'Greyhound', 'Pug', 'Spaniel']
>>      lst_c = ['Ale', 'Lager', 'Pilsner', 'Bock', 'Porter', 'Stout']
>>      lst_d = ['fender', 'gibson', 'rickenbacker', 'guild', 'danelectro',
>> 'gretsch', 'martin', 'ibanez']
>>      x = [('lst_a', .50), ('lst_b', .25), ('lst_c', .10),('lst_d', .15)]
>
> x is list containing the *names* of the other lists. You need to keep
> references to the lists so you can pick from them.
>       x = [(lst_a, .50), (lst_b, .25), (lst_c, .10),(lst_d, .15)]

i am an idiot... someone shoot me.. i guess i got so carried away with 
typing
the single quotes for the above lists that when i went to pack those up 
for windex
i didn't realize that i had needlessly typed 'lst_a', etc. Sometimes 
you just need a
fresh pair of eyes to pick up on that type of thing....


>>      i = 1
>>      while i < 100:
>>              lst = windex(x)
>>              print i, lst,
>
> with the change above this will print the list, not its name
>>              pick = random.choice(lst)
> but this will work.
>
> If you want to be able to print the name of the list then you could
> include both the name and the actual list in x:
>
>       x = [(('lst_a', lst_a), .50), etc...]


That produces:
('lst_c', ['Ale', 'Lager', 'Pilsner', 'Bock', 'Porter', 'Stout'])
['Ale', 'Lager', 'Pilsner', 'Bock', 'Porter', 'Stout']

i am actually trying to get name of list, the choice like so:

lst_c
Bock

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to