On Mon, 13 Oct 2008 14:10:43 +0200, Mathias Frey wrote:

> However incrementing a non-existing key throws an exception. So you
> either have to use a workaround:
> 
>  >>> try:
> ...   counter['B'] += 1
> ... except KeyError:
> ...   counter['B'] = 1
> 
> Since this looks ugly somebody invented the setdefault method:
> 
>  >>> counter['B'] = counter.setdefault('B',0) + 1

Nope, for this use case there is the `dict.get()` method:

counter['B'] = counter.get('B', 0) + 1

This assigns only *once* to ``counter['B']`` in every case.

`dict.setdefault()` is for situations where you really want to actually 
put the initial value into the dictionary, like with the list example by 
the OP.

Ciao,
        Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to