擅长:python、mysql、java
<p>您不需要预先分配这些列表,使用<code>defaultdict</code>和<code>list</code>作为值:</p>
<pre><code>from collections import defaultdict
d = defaultdict(list)
for x, y in KeyWeight.iteritems():
d[y].append(x)
KeyWeight = d
</code></pre>
<p>要从列表值创建组合,只需使用<code>itertools.combinations</code>。您可以使用这个相关的<a href="https://stackoverflow.com/a/44478317/3125566">answer</a>,它使用<code>itertools.product</code>并保留键值顺序作为指导。你知道吗</p>