> ... this is a crappy solution that's underusing Python. Please
> enlighten me of a better way!
>
> - Fencer
One thing that springs to mind is using the dict method .setdefault
for dkey, vallist in old_dict.iteritems():
for val in vallist:
new_dict.setdefault(val, set()).add(dkey)
I tried this code:
old_dict = {'xyz':['a','b','c'],'baz':['c','d']}
new_dict = {}
for dkey, vallist in old_dict.iteritems():
for val in vallist:
if val in new_dict:
theset = new_dict[val]
theset.add(dkey)
Hello, I have a dictionary that has strings as keys and for each key the
associated value is a list of strings. Many of the lists contain only
one element and a given element may appear for more than one key.
What I need to do now is create a new dictionary where the strings in
the list are keys