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 - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor