如何对一维列表进行嵌套?

时间:2019-03-22 17:21:49

标签: python python-3.x

如何在不使用模块的情况下对一维嵌套列表? 示例:

input : [[[2]], [4, [5, 6, [6], 6, 6, 6], 7]
output: [2, 4, 5, 6, 6, 6, 6, 6, 7]

我写了函数

result = []
def flat_list(array):
    for x in array:
        if isinstance(x, list):
            flat_list(x)
        else:
            result.append(x)
            print(x)
    return result

我想仅使用函数而不使用外部任何变量​​来执行此操作。谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下递归函数进行操作:

inList = [[[2]], [4, [5, 6, [6], 6, 6, 6], 7]]
def flatten(l):
    r = []
    for elem in l:
        if isinstance(elem,list):
            r += flatten(elem)
        else:
            r.append(elem)
    return r
print(flatten(inList))

结果:

[2, 4, 5, 6, 6, 6, 6, 6, 7]