擅长:python、mysql、java
<p><a href="https://stackoverflow.com/questions/15215552/python-create-dictionary-with-multi-list-comprehension/15215878#comment21446419_15215584">In the comments you mentioned that you use Python 2.6</a>。Python2.6中没有dict理解,您可以将<code>dict()</code>与生成器表达式一起使用:</p>
<pre><code>d = dict((kw, [item for item in listA if kw in item]) for kw in keywords)
</code></pre>
<p>这里有一个可能更有效的版本:</p>
^{pr2}$
<p>如果<code>listA</code>始终采用问题中给定的格式:</p>
<pre><code>from collections import defaultdict
keywords = set(keywords)
d = defaultdict(list)
for item in listA:
word = item.partition("_")[0]
if word in keywords:
d[word].append(item)
</code></pre>
<p>如果<code>listA</code>不包含<code>keywords</code>中不包含的项:</p>
<pre><code>from collections import defaultdict
d = defaultdict(list)
for item in listA:
d[item.partition('_')[0]].append(item)
</code></pre>