On Sat, 03 Mar 2007 15:56:39 -0500, Nicholas Parsons wrote: > > On Mar 3, 2007, at 3:49 PM, Paul Rubin wrote: > >> Nicholas Parsons <[EMAIL PROTECTED]> writes: >>> I was just playing around in IDLE at the interactive prompt and typed >>> in dir({}) for the fun of it. I was quite surprised to see a pop >>> method defined there. I mean is that a misnomer or what? From the >>> literature, pop is supposed to be an operation defined for a stack >>> data structure. A stack is defined to be an "ordered" list data >>> structure. Dictionaries in Python have no order but are sequences. >>> Now, does anyone know why the python core has this pop method >>> implemented for a dictionary type? >> >> Try typing: >> >> help({}.pop) >> -- >> http://mail.python.org/mailman/listinfo/python-list > > Thanks, that gives a more details explanation of what the behavior is > but doesn't answer my question above :(
Just because pop can be defined for an ordered stack doesn't mean pop can't be generalized to other data types too. I personally don't see that pop has any advantage, especially since the most useful example while some_dict: do_something_with(some_dict.pop()) doesn't work. Instead you have to write this: for key in some_dict.keys(): # can't iterate over the dictionary directly! do_something_with(some_dict.pop(key)) which is hardly any saving over: for key in some_dict.keys(): # can't iterate over the dictionary directly! do_something_with(some_dict[key]) del some_dict[key] To my mind, having to supply a key to dict.pop makes it rather pointless. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list