擅长:python、mysql、java
<p>由于Python没有<a href="https://en.wikipedia.org/wiki/Let_expression" rel="nofollow noreferrer">"let ... in ..." expressions</a>,最简洁的方法就是编写函数并调用它。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>def apply_g_h(x):
y = f(x)
return g(y), h(y)
mylist = [ apply_g_h(x) for x in mylist ]
</code></pre>
<p>如果您真的喜欢将其作为一个线性函数,那么lambda函数可以达到相同的目的:</p>
<pre class="lang-py prettyprint-override"><code>mylist = [ (lambda y: (g(y), h(y)))(f(x)) for x in mylist ]
</code></pre>
<p>这是因为“let”表达式<code>let x = e1 in e2</code>等价于<code>(lambda x: e2)(e1)</code>。当我仅限于编写表达式(传递给<code>eval</code>)时,我有时不得不这样做,但它的可读性不强,所以我认为第一种解决方案更好。你知道吗</p>