2010-11-05 12 views

Répondre

3
from collections import defaultdict 

newdict = defaultdict(list) 
for k,v in originaldict.items(): 
    newdict[v].append(k) 
+0

-1: Ne fonctionne pas comme écrit - génère exception 'ValueError'. – martineau

+0

OK, c'est mieux! – martineau

2

Pas exactement sûr de vouloir le résultat structuré, mais voici une supposition:

from collections import defaultdict 

mydict = {'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 4, 'f': 2, 'g': 4} 

tempdict = defaultdict(list) 
for k,v in mydict.iteritems(): 
    tempdict[v].append(k) 

groupedkeysdict = {} 
for k,v in tempdict.iteritems(): 
    groupedkeysdict[tuple(v) if len(v)>1 else v[0]] = k 

print groupedkeysdict 
# {'a': 1, 'c': 3, ('e', 'g'): 4, ('b', 'd', 'f'): 2}