[Tutor] lists of lists: more Chutes & Ladders!
Keith Winston
keithwins at gmail.com
Tue Dec 31 08:30:22 CET 2013
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 <keithwins at 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.
>
--
Keith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20131231/12e410b9/attachment.html>
More information about the Tutor
mailing list