擅长:python、mysql、java
<p>数组方法<code>tolist</code>是将数组转换为列表的一种简单而快速的方法。它可以正确处理多个维度:</p>
<pre><code>In [92]: arr = np.arange(12).reshape(3,4)
In [93]: arr
Out[93]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [94]: arr.tolist()
Out[94]: [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
</code></pre>
<p>在大多数情况下,如列表列表和元组列表或元组列表一样好。它们只在易变性上有所不同。</p>
<p>但是如果必须有元组,列表理解可以很好地完成转换。</p>
<pre><code>In [95]: [tuple(x) for x in arr.tolist()]
Out[95]: [(0, 1, 2, 3), (4, 5, 6, 7), (8, 9, 10, 11)]
</code></pre>
<p>另一个<code>[tuple(x) for x in arr]</code>比较慢,因为它是在数组上而不是在列表上迭代。它还会产生一个不同的结果——尽管您必须检查元组元素的<code>type</code>才能看到这个结果。</p>
<p>我强烈建议从<code>tolist</code>方法开始,然后执行任何列表到元组的转换。</p>