擅长:python、mysql、java
<p>将列表理解与<code>any</code>一起使用<code>any</code>比{<cd3>}快,因为它在{<cd4>}上短路</p>
<pre><code>df['col2'] = [any(y[0] >= 0.5 for y in x) for x in df.col1]
Out[1815]:
col1 col2
0 [[0.43], [0.46], [1.0], [0.323]] True
1 [[0.33], [0.66], [1.0], [0.3412]] True
2 [[0.27], [0.42], [0.13], [0.332]] False
</code></pre>
<hr/>
<p><strong>一些时间安排</strong>:</p>
<pre><code>df = pd.concat([df]*10000, ignore_index=True)
In [1820]: %timeit [any(y[0] >= 0.5 for y in x) for x in df.col1]
41.2 ms ± 1.03 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [1823]: %timeit df['col1'].apply(lambda x: max(e[0] for e in x) >= 0.5)
51.9 ms ± 1.58 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
</code></pre>
<p>用<code>max</code>理解旁侧测试列表</p>
<pre><code>In [1827]: %timeit [max(y[0] for y in x) >= 0.5 for x in df.col1]
49.9 ms ± 2.24 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
</code></pre>
<p>因此,<code>any</code>虽然不显著,但速度更快</p>