On Mon, Oct 1, 2012 at 7:46 PM, Alan Gauld <alan.ga...@btinternet.com> wrote: > > As c smith points out, Python lists have a pop/push mechanism as standard > which makes implementing a stack in Python fairly trivial. > > To expand on how reversing works consider pushing the string foo onto the > stack then popping it off again: > > s = 'foo' > stack = [] > stack.push(s[0]) # stack -> ['f'] > stack.push(s[1]) # stack -> ['o','f'] > stack.push(s[2]) # stack -> ['o','o','f'] > > c1 = stack.pop() # stack -> ['o','f'], c1 = 'o' > c2 = stack.pop() # stack -> ['f'], c1 = 'o', c2 = 'o' > c3 = stack.pop() # stack -> [], c1 = 'o', c2 = 'o', c3 = 'f' > > print c1+c2+c3 # prints 'oof' the reverse of s
It's a good example, but please indicate when you've switched to pseudocode. In Python "stack = []" assigns a new list to stack, which has no "push" method. It can append() and pop() from the end in constant time to implement an efficient stack. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor