擅长:python、mysql、java
<p>看来您不仅需要执行一次此搜索,因此我建议您将列表转换为字典:</p>
<pre><code>>>> l = ['Hi, hello', 'hi mr 12345', 'welcome sir']
>>> d = dict()
>>> for item in l:
... for word in item.split():
... d.setdefault(word, list()).append(item)
...
</code></pre>
<p>所以现在你可以很容易地做到:</p>
<pre><code>>>> d.get('hi')
['hi mr 12345']
>>> d.get('come') # nothing
>>> d.get('welcome')
['welcome sir']
</code></pre>
<p>p.s.可能需要改进<code>item.split()</code>来处理逗号、指针和其他分隔符。可以使用regex和<code>\w</code>。</p>
<p>p.p.s.正如库拉里安所说,这与“欢迎先生”不符。如果要匹配整个字符串,它只是建议的解决方案的另一行。但如果必须匹配字符串中以空格和标点符号为界的部分,则应该选择<code>regex</code>。</p>