擅长:python、mysql、java
<p>一种选择是使用<a href="http://docs.python.org/2/library/itertools.html#itertools.groupby" rel="nofollow" title="itertools.groupby">itertools.groupby</a></p>
<pre><code>from itertools import groupby
from operator import itemgetter
main_dict = {
'A' : {'key1' : 'valueA1', 'key2' : 'valueA2'},
'B' : {'key2' : 'valueB2', 'key3' : 'valueB3'},
'C' : {'key3' : 'valueC3', 'key1' : 'valueC1'}}
## Pull inner key, outer key and value and sort by key (prior to grouping)
x = sorted([(k2, [k1, v2]) for k1, v1 in main_dict.items() for k2, v2, in v1.items()])
## Group by key. This creates an itertools.groupby object that can be iterated
## to get key and value iterables
xx = groupby(x, key=itemgetter(0))
for k, g in xx:
print('{0} : {1}'.format(k, [r[1] for r in list(g)]))
</code></pre>
<p>根据您的数据和性能要求,排序可能并不理想,因此值得分析。在</p>
<p>此外,它不会产生指定的dict,而是groupby对象。这可能已经足够满足您的需求了;迭代它会产生key和iterable。在</p>