Laurens Vets wrote:
<snip>

Yes of course :) That's a typo on my part. I came up with the following which I think works as well?

import random
reeks = []
for i in range(60):
  temp = [random.randint(1, 6)]
  while reeks[-2:-1] == reeks[-1:] == temp:
    temp = [random.randint(1, 6)]
    if reeks.count(temp[0]) >= 10:
      temp = [random.randint(1, 6)]
  reeks.extend(temp)
print reeks

<snip>
Without actually trying it, I think you've got a problem in the reeks.count code.

You only check the count if you've already match temp with the last two list items.


I'd add the reeks.count logic as a compound "or" in the test of the while loop. And since that makes a pretty long line, I might then make a separate function of the "is temp a valid item to add to this list"

*untested* :

def is_valid(item, thelist):
     if len(list) >1 and (thelist[-2] == thelist[-1] == item):
           return False
     if thelist.count(item) >= 10:
            return False
     return True

import random
reeks = []
for i in range(60):
   temp = random.randint(1, 6)
       while not is_valid(temp):
           temp = random.randint(1, 6)
   reeks.append(temp)
print reeks


I also fixed the indentation to 4, and made temp a scalar instead of a list.

DaveA

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to