On 31/12/2013 07:30, Keith Winston wrote:
Never mind, I figured out that the slice assignment is emptying the
previous lists, before the .reset() statements are creating new lists
that I then populate and pass on. It makes sense.
On Tue, Dec 31, 2013 at 12:59 AM, Keith Winston <keithw...@gmail.com
<mailto:keithw...@gmail.com>> wrote:
I resolved a problem I was having with lists, but I don't understand
how! I caught my code inadvertently resetting/zeroing two lists
TWICE at the invocation of the game method, and it was leading to
all the (gamechutes & gameladders) lists returned by that method
being zeroed out except the final time the method is called. That
is: the game method below is iterated iter times (this happens
outside the method), and every time gamechutes and gameladders
(which should be lists of all the chutes and ladders landed on
during the game) were returned empty, except for the last time, in
which case they were correct. I can see that doing the multiple
zeroing is pointless, but I can't understand why it would have any
effect on the returned values. Note that self.reset() is called in
__init__, so the lists exist before this method is ever called, if I
understand properly.
def game(self, iter):
"""Single game"""
self.gamechutes[:] = [] #when I take out these two slice
assignments,
self.gameladders[:] = [] # then gamechutes & gameladders
work properly
self.gamechutes = [] # these were actually in a call to
self.reset()
self.gameladders = []
#.... other stuff in reset()
while self.position < 100:
gamecandl = self.move()
if gamecandl[0] != 0:
self.gamechutes.append(gamecandl[0])
if gamecandl[1] != 0:
self.gameladders.append(gamecandl[1])
return [iter, self.movecount, self.numchutes,
self.numladders, self.gamechutes, self.gameladders]
I'm happy to share the rest of the code if you want it, though I'm
pretty sure the problem lies here. If it's not obvious, I'm setting
myself up to analyse chute & ladder frequency: how often, in a
sequence of games, one hits specific chutes & ladders, and related
stats.
As always, any comments on style or substance are appreciated.
Please intersperse or bottom post, top posting makes things very
difficult to follow, especially in long threads.
TIA.
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor