dict.popitem(key) ???

Alex Martelli aleax at aleax.it
Sun Mar 16 02:15:29 EST 2003


Raymond Hettinger wrote:

> "Justin Shaw"
>> Why doesn't popitem take a key argument that defaults to None?  Or how
>> should I pop a particular item out of a dict?
> 
> In Py2.3, dict.pop can take an optional default argument:
> 
>    avalue =  mydict(possiblekey, default)
> 
> It can also just search for a specified key and return an
> exception if not found:
> 
>   avalue = mydict(possiblekey)

Just to clarify (I think a ".pop" just failed to appear here):

Python 2.3a2+ (#10, Mar 16 2003, 08:10:57)
[GCC 3.2 (Mandrake Linux 9.0 3.2-1mdk)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> ad=dict.fromkeys('ciao')
>>> ad
{'i': None, 'a': None, 'c': None, 'o': None}
>>> ad.pop('z')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
KeyError: 'z'
>>> ad.pop('z',23)
23
>>> ad.pop('a',23)
>>> ad
{'i': None, 'c': None, 'o': None}
>>>

If you can't use 2.3 (still in alpha stage), then as somebody else
suggested you can still do the job, albeit in two steps:

>>> ad.get('o',42)
>>> del ad['o']
>>> ad
{'i': None, 'c': None}
>>>


Alex





More information about the Python-list mailing list