On 10/11/10 1:29 PM, MRAB wrote:
On 11/10/2010 15:55, MacOSX @ Rocteur.cc wrote:
Hi,

Is there an easier way to do this, I am adding/creating to an array
inside a dict but can find a cleaner way:

So I first check if the key exists already, if it does then I know I use
append, if it does not I create it.

if osmdict.has_key(token):
osmdict[token]['user'].append(user)
osmdict[token]['reason'].append(reason)
else:
osmdict[token] = { 'user' : [user], 'reason' : [reason]}

Sorry if I've completely overlooked the obvious,

Thanks in advance,

osmdict.setdefault(token, {}).update({'user': [user], 'reason': [reason]})

No, that really doesn't do what the OP wants.

from collections import defaultdict

osmdict = defaultdict(lambda: defaultdict(list))

...
osmdict[token]['user'].append(user)
osmdict[token]['reason'].append(reason)

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to