A Q. on pop().

Duncan Booth duncan.booth at invalid.invalid
Thu Mar 17 11:54:58 EST 2005


spencer wrote:

> first Q.. Why is pop() starting from the back
>           back of the stack?

Because that is what it does. Try reading the documentation:

>>> help(list.pop)
Help on method_descriptor:

pop(...)
    L.pop([index]) -> item -- remove and return item at index (default 
last)


> second Q.. Why can't I never empty the stack?

Because you are modifying a list while iterating over it which is never a 
good idea. What you have now pops items from the end of the loop so it 
stops about half way along. If you change it to pop item 0 then it will 
shift the items down and your iteration will end up skipping over about 
half of them.

Try something like this:

def buildStackMajor():
    while dirStackMinor:
        dirStackMajor.append(dirStackMinor.pop(0))

although in that case you might just as well get rid of the loop entirely:

    dirStackMajor += dirStackMinor
    del dirStackMinor[:]



More information about the Python-list mailing list