如何对以集合为值的字典进行反向排序?

How do I inverse sort a dictionary that has sets as values?

所以我有下面的字典:

adict = {1: set(['a', 'b']), 2: set(['b', 'c'])}

如何反转字典以便在打印 inv_dict 时得到以下输出:

inv_dict = {'a': set([1]), 'b': set([1, 2]), 'c': set([2])}

遍历字典,构建新的:

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])}