On Aug 27, 8:01 pm, Fredrik Lundh <[EMAIL PROTECTED]> wrote: > mblume wrote: > >> 2) setdefault is your friend > > >> d = {} > >> d['a'] = d.setdefault('a', 1) + 1 > > > d['a'] = d.get('a', 1) + 1 > > > seems to me a little better, as d['a'] doesn't get set twice, right? > > setdefault is pronounced "get, and set if necessary". it only updates > the dictionary if the key isn't already there: > > >>> help({}.setdefault) > Help on built-in function setdefault: > > setdefault(...) > D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D > > (since setdefault is a method, the second argument is evaluated whether > it's used or not, but that's true for your approach as well, and isn't > much of a problem for a light-weight object like the integer 1.) > Both
d['a'] = d.setdefault('a', 1) + 1 and d['a'] = d.get('a', 1) + 1 will set d['a'] to 2 if 'a' isn't initially in d. -- http://mail.python.org/mailman/listinfo/python-list