擅长:python、mysql、java
<p>你的问题有两个部分。在</p>
<ol>
<li><p><code>lambda</code>只是编写函数的另一种方法:</p>
<pre><code>def find_non_uk(x):
return re.match(pattern, x)
</code></pre>
<p>同:</p>
^{pr2}$
<p><code>lambda</code>在你能做的事情上是相当有限的。它基本上只限于一行,所有的都必须是一个表达式。使用<code>def</code>,没有这样的限制。可以在函数体中使用多行和多个语句。</p></li>
<li><p><code>filter</code>将给定函数应用于列表的每个元素,并只返回返回返回值为true的列表元素。从docstring:</p>
<blockquote>
<p>filter(function or None, iterable) > filter object</p>
<p>Return an iterator yielding those items of iterable for which function(item)
is true. If function is None, return the items that are true.</p>
</blockquote></li>
</ol>
<p>你可以这样写你的台词:</p>
<pre><code>foreign_numbers = list(filter(find_non_uk, number_plates))
</code></pre>
<p>您需要外部的<code>list()</code>将迭代器转换为列表。在</p>
<p>如果这看起来太复杂了,而且你知道列表的含义,请使用它们:</p>
^{4}$