On 1/11/07, Adam Cripps <[EMAIL PROTECTED]> wrote: > On 1/11/07, Kent Johnson <[EMAIL PROTECTED]> wrote: > > Adam Cripps wrote: > > > I have a list which comprises of simple random arithmetic problems for > > > teachers to give to their pupils. This list must be a set length (if > > > the teacher asks for 10 questions, they should get 10 questions), but > > > should not have any duplicates. > > > > > > I've seen the use of sets, but this reduces the size of the list, when > > > I have to have a fixed length. > > > > > > Is there a quick way of checking if a string is already within a list > > > without iterating over the items of the list (which will slow the > > > application down slightly)? > > > > Hmm. If you are trying to pick 10 elements at random from a larger list, > > use random.sample(problems, 10) > > > > If for some reason that doesn't work for you (maybe you are creating > > problems on the fly?) you could build a set in a loop, adding items > > until it is the size you want: > > problemSet = set() > > while len(problemSet) < 10: > > # do something to add a (possibly) new problem to the set > > >
I'm creating them on the fly - so this suggestion seems to be the sensible way forward. I've not worked with Sets before but will give it a go. Is there a way of turning the Set back to a list? TIA Adam -- http://www.monkeez.org PGP key: 0x7111B833 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor