擅长:python、mysql、java
<p>@mgilson可能会给你最好的答案,但是如果你必须先转换成一个简单的列表,然后再返回(也许因为你还需要对这个列表做些其他的事情),那么你可以用列表理解来做这件事:</p>
<pre><code>lst = [numpy.zeros((2,4)), numpy.ones((3,3))]
tlist = [e for a in lst for e in a.ravel()]
tlist[1] = 2
i = 0
lst2 = []
dims = [a.shape for a in lst]
for n, m in dims:
lst2.append(np.array(tlist[i:i+n*m]).reshape(n,m))
i += n*m
lst2
[array([[ 0., 2.],
[ 0., 0.]]), array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])]
</code></pre>
<p>当然,在展平时会丢失有关数组大小的信息,因此需要将它们存储在某处(在<code>dims</code>)中。在</p>