如何对以集合为值的字典进行反向排序?
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])}
所以我有下面的字典:
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])}