擅长:python、mysql、java
<p>如果要返回与子字符串匹配的字符串,则不能使用<code>any</code>,<code>any</code>在<code>x in s</code>时不会保留<code>s</code>的值。你知道吗</p>
<p>可以在搜索迭代器上使用<code>next</code>,如果找不到,<code>None</code>作为默认值。如果不是<code>None</code>,则从函数返回</p>
<pre><code>myList = ['abc']
lookup = ['abc 123', 'efg 456', 'ijk 789']
def checkIfinLookup(mylist, lookup):
for x in mylist:
n = next((s for s in lookup if x in s),None)
if n is not None:
return n
</code></pre>
<p>更好的是,正如Stefan所暗示的,不需要额外的循环和测试,只需在理解中展平两个循环:</p>
<pre><code>def checkIfinLookup(mylist, lookup):
return next((s for x in mylist for s in lookup if x in s),None)
</code></pre>