压平可变长度数组列表

时间:2012-12-07 09:31:34

标签: python

如何转换:

[2, 4, array([ 3.]), array([ 4.]), array([ 5.,  4.])]

[2,4,3,4,5,4]

我尝试过搜索,但解决方案适用于

[array([ 2.]), array([ 4.]), array([ 3.]), array([ 4.]), array([ 5.,  4.])]

[[2],[4],[3],[4],[5,4]]

2 个答案:

答案 0 :(得分:1)

import itertools

a = [2, 4, array([ 3.]), array([ 4.]), array([ 5.,  4.])]
list(itertools.chain.from_iterable(asarray(b).ravel() for b in a))

答案 1 :(得分:0)

我喜欢用和来平整事物。在您的情况下,您希望首先将数组转换为列表,将数字转换为数字列表。因此,如果数组位于:

sum((list(x) if hasattr(x, '__iter__') else [x] for x in a), [])