Quoting W W <[EMAIL PROTECTED]>:

The number of items I want from a list is smaller than the population
(number of items) in the list, so it should work.

In this specific case, I'm asking for one item from a five-item list.

Are you sure?

change this:
 for card in random.sample(SpecialA, SA):

to this:

print "Special: ", SpecialA, "\nSA: ", SA
for card in random.sample(SpecialA, SA):

then give us the output. I'll bet that your SA value is never reset to 1.

There is a part of my front-end code that declares the SA variable as equal to 1 for the card set in question, and feeds that into the processing function.
Changing the block of code, as you suggest, still gets me a traceback:

Special:  []
SA:  1

Traceback (most recent call last):
File "C:\Documents and Settings\Alan\My Documents\_Alan_Programming\trunk\BoosterPackMaker\BoosterPackMaker.py", line 104, in <module> SixList_PackChooser(C_list, UC_list, R_list, BL_list, SpecialA_list, SpecialB_list, C, UC, R, BL, SA, SB) File "C:\Documents and Settings\Alan\My Documents\_Alan_Programming\trunk\BoosterPackMaker\PackGenerator.py", line 367, in SixList_PackChooser
    for card in random.sample(SpecialA, SA):
  File "C:\Python25\lib\random.py", line 303, in sample
    raise ValueError, "sample larger than population"
ValueError: sample larger than population

So, I'm asking my program to pick 1 item from a 0-item list. How there are zero items in the list, I don't know. That must be the problem.


You've obviously researched enough to know this:
mylist = [1, 2, 3, 4, 5]
from random import sample
sample(mylist, 3)
[2, 1, 4]
sample(mylist, 10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/random.py", line 303, in sample
    raise ValueError, "sample larger than population"
ValueError: sample larger than population

Okay, asking for 3 items from a 5-item list works, and asking for 10 items from a 5-item list doesn't work. It should be trying to pick 1 item from the 5-item SpecialA list, but somehow the SpecialA list has zero items in it.

So give the print statement before your for loop a try and see what you come
up with.

Okay, I cut'n'pasted it before the traceback message.

HTH,
Wayne

Thank you.
-----------------------------------------------
SixList_PackChooser(C_list, UC_list, R_list, BL_list, SpecialA_list, SpecialB_list, C, UC, R, BL, SA, SB)

^ The error occurs in this function.
The program picks C number of items from C_list and displays them just fine.
The program picks UC number of items from UC_list and displays them just fine.
The program picks R number of items from R_list and displays them just fine.
The program picks BL number of items from BL_list and displays them just fine.

Looking at my user-interface/front-end, it looks like the function's being fed proper values.

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

Reply via email to