擅长:python、mysql、java
<p>你原来的方法真的没什么错。我非常喜欢它,而不是两次调用函数的方法,这看起来绝对是浪费,特别是如果它做了很多工作的话</p>
<p>如果您正在使用>=Python3.8中,可以使用赋值表达式:</p>
<pre><code>[result for x in data if (result:= foo(x)) is not None]
</code></pre>
<p>或者,下面使用<code>map</code>的函数只执行一次传递,不构建中间列表:</p>
<pre><code>[x for x in map(foo, data) if x is not None]
</code></pre>