create a dict of lists from a string

Posted by Chris Card on Stack Overflow See other posts from Stack Overflow or by Chris Card
Published on 2011-03-01T13:54:46Z Indexed on 2011/03/01 15:24 UTC
Read the original article Hit count: 259

Filed under:
|
|
|

I want to convert a string such as 'a=b,a=c,a=d,b=e' into a dict of lists {'a': ['b', 'c', 'd'], 'b': ['e']} in Python 2.6.

My current solution is this:

def merge(d1, d2):
    for k, v in d2.items():
        if k in d1:
            if type(d1[k]) != type(list()):
                d1[k] = list(d1[k])
            d1[k].append(v)
        else:
            d1[k] = list(v)
    return d1

record = 'a=b,a=c,a=d,b=e'

print reduce(merge, map(dict,[[x.split('=')] for x in record.split(',')]))

which I'm sure is unnecessarily complicated.

Any better solutions?

© Stack Overflow or respective owner

Related posts about python

Related posts about list