擅长:python、mysql、java
<p>为什么不使用简单的列表理解:</p>
<pre><code>arr = [
[
["n1t1:1", "n1s1:2", "n1o1:5"],
["n1t2:3", "n1s2:8", "n1o2:9"]
],
[
["n2t1:9", "n2s1:3", "n2o1:2"],
["n2t2:5", "n2s2:1", "n2o2:7"]
],
[
["n3t1:4", "n3s1:9", "n3o1:2"],
["n3t2:7", "n3s2:1", "n3o2:5"]
]
]
result = [[arr_lev3[1] for arr_lev3 in arr_lev2] for arr_lev2 in arr]
print(result)
</code></pre>
<p>样本输出:</p>
<pre><code>[['n1s1:2', 'n1s2:8'], ['n2s1:3', 'n2s2:1'], ['n3s1:9', 'n3s2:1']]
</code></pre>
<hr/>
<p>它比<code>map</code>方法快2倍多:</p>
<pre><code>In [38]: %timeit result = [[arr_lev3[1] for arr_lev3 in arr_lev2] for arr_lev2 in arr]
753 ns ± 2.24 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [39]: %timeit result2 = list(map(lambda first: list(map(lambda second: second[1], first)), arr))
1.63 µs ± 20.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
</code></pre>