擅长:python、mysql、java
<p>这里有几行:</p>
<pre class="lang-py prettyprint-override"><code>for person in people:
print((lambda x: x.split()[0] + ' ' + x.split()[-1])(person))
</code></pre>
<p>是非常糟糕的代码,因为它不必要地使用了<code>lambda</code></p>
<p>他们的意思可能是:</p>
<pre class="lang-py prettyprint-override"><code>for person in people:
print((lambda x: x[0] + ' ' + x[-1])(person.split()))
</code></pre>
<p>它在索引之前执行<code>.split()</code>一次</p>
<p>这句话的意思是:</p>
<pre class="lang-py prettyprint-override"><code>(lambda x: x.split()[0] + ' ' + x.split()[-1])(person)
</code></pre>
<p>is do是在一行中创建和执行<code>lambda</code>。末尾的<code>(person)</code>正在调用参数为<code>person</code>的<code>lambda</code>,该参数将成为lambda的<code>x</code>参数</p>