擅长:python、mysql、java
<ol>
<li>不要对<code>m_words</code>和<code>k_words</code>使用全局变量。你知道吗</li>
<li>将<code>if</code>语句置于<code>for</code>循环之外。你知道吗</li>
<li>一劳永逸地施放<code>tuple(StartWords)</code>。你知道吗</li>
<li>使用程序创建的正则表达式而不是列表。你知道吗</li>
<li>预先编译所有你能做的。你知道吗</li>
<li>直接扩展列表,而不是通过它迭代到<code>append()</code>每个元素。你知道吗</li>
<li>从一开始就使用<code>set</code>而不是<code>list</code>。你知道吗</li>
<li>使用集合理解而不是显式的<code>for</code>循环。你知道吗</li>
</ol>
<hr/>
<pre><code>m_reg = re.compile("|".join(re.escape(w) for w in m_words))
h_reg = re.compile("|".join(re.escape(w) for w in h_words))
def make_gs_list(sentences, start_words, m_reg, h_reg, org):
if org == 'm':
reg = m_reg
elif org == 'h':
reg = h_reg
matched = {w for s in sentences if s.startswith(start_words)
for w in reg.findall(s.lower())}
return matched
</code></pre>