2015-12-17 1 views

ответ

3

Loop над словарем, строить новый:

inverse = {} 
for key, values in adict.items(): 
    for value in values: 
     inverse.setdefault(value, set()).add(key) 

Демо:

>>> adict = {1: set(['a', 'b']), 2: set(['b', 'c'])} 
>>> inverse = {} 
>>> for key, values in adict.items(): 
...  for value in values: 
...   inverse.setdefault(value, set()).add(key) 
... 
>>> inverse 
{'a': set([1]), 'c': set([2]), 'b': set([1, 2])} 
+0

Работает отлично! Спасибо! – Daniel