返回嵌套在多个数组中的数组的最简单方法

时间:2012-11-28 16:33:52

标签: python

我的情况是,我的数据有时可以嵌套在多个数组层中。

有时,数据可以嵌套为:

[ [ 'green', 'blue', 'red' ] ]

其他时间

[[[ ['green', 'blue', 'red' ] ]]]

我想提取数组并返回它,这样做的最pythonic方法是什么?

3 个答案:

答案 0 :(得分:3)

def get_nested_list(a):
    if len(a) == 1 and isinstance(a[0], list):
        return get_nested_list(a[0])
    return a

示例:

>>> get_nested_list([[[ ['green', 'blue', 'red' ] ]]])
['green', 'blue', 'red']
>>> get_nested_list([[[[1, 2],[3]]]])
[[1, 2], [3]]

答案 1 :(得分:3)

Numpy一如既往地是你最好的朋友:

>>> import numpy as np
>>> a = [[[ ['green', 'blue', 'red' ] ]]]
>>> print np.squeeze(a)
['green' 'blue' 'red']

numpy函数squeeze()删除数组中1的所有维度。

答案 2 :(得分:0)

递归解决方案:

def strip(a):
    if len(a)==1:
        if isinstance(a[0], list):
            a=a[0]
            return strip(a)
        else:
            return a
    return a