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