On 17/04/12 19:23, leo degon wrote:
Ok so I've done a bit of work on the program and rewrote it. I tried to take everyones advice. I've used more functions, I've made it so that it is a list of lists each containing an integer instead of another list with a single entry.
It still looks too complicated to me.
#set intital distribution if initial=='r': for i in range(x): for j in range(y): space[i].__setitem__(j,random.randint(0,1))
What's with the __setitem__ stuff? You should never normally need to call that directly. I would expect something like
for i in range(x): for j in range(y): space[i][j] = randint(0,1) Or, using list comprehensions: for i in range(x): space[i] = [randint(0,1) for j in range(y)] Or even: space = [[randint(0,1) for j in range(y)] for i in range(x)] Which, for x,y = 3,4 gives a structure like: >>> space [[1, 0, 0, 0], [1, 0, 1, 1], [0, 1, 1, 0]] >>>
elif initial=='c': for i in range(x): for j in range(y): if (i+j)%2==0: space[i].__setitem__(j,1)
Again I'd just use space[i][j] = 1 HTH -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor