'inverting' a dict

Elaine Jackson elainejackson7355 at home.com
Thu Jan 1 01:30:00 CET 2004


dict2=dict([(a,b) for b in dict1.keys() for a in dict1[b]])

HTH


"Irmen de Jong" <irmen at -NOSPAM-REMOVETHIS-xs4all.nl> wrote in message
news:3ff1b688$0$319$e4fe514c at news.xs4all.nl...
| Hi
| I have this dict that maps a name to a sequence of other names.
| I want to have it reversed, i.e., map the other names each to
| the key they belong to (yes, the other names are unique and
| they only occur once). Like this:
|
| { "key1": ("value1", "value2"), "key2": ("value3,) }
|
| -->
|
| { "value1": "key1", "value2": "key1", "value3": "key2" }
|
| What I'm doing is using a nested loop:
|
| dict2={}
| for (key,value) in dict1.items():
|      for name in value:
|          dict2[name] = key
|
| which is simple enough, but I'm hearing this little voice in
| the back of my head saying "there's a simpler solution".
| Is there? What is it? ;-)
|
| Thanks
| --Irmen.
|





More information about the Python-list mailing list