擅长:python、mysql、java
<p>为了方便起见,请使用<code>defaultdict</code>:</p>
<pre><code>from collections import defaultdict
dictNames = defaultdict(list)
for key, value in zip(blist, alist):
dictNames[key].append(value)
</code></pre>
<p>这将创建:</p>
<pre><code>>>> dictNames
defaultdict(<type 'list'>, {'A': [11, 12, 11], 'B': [13, 15]})
</code></pre>
<p><code>defaultdict</code>是<code>dict</code>的一个子类,因此它仍然可以像其他<code>dict</code>一样工作。你知道吗</p>
<p>如果没有<code>defaultdict</code>,则必须测试键是否已经存在于<code>setdefault()</code>:</p>
<pre><code>dictNames = {}
for key, value in zip(blist, alist):
dictNames.setdefault(key, []).append(value)
</code></pre>
<p>导致:</p>
<pre><code>>>> dictNames
{'A': [11, 12, 11], 'B': [13, 15]}
</code></pre>
<p>这里真正的技巧是使用<a href="http://docs.python.org/3/library/functions.html#zip" rel="nofollow">^{<cd7>}</a>组合键和值列表,而不是使用双循环。你知道吗</p>