Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将嵌套列表设置为一维?_Python_Python 3.x - Fatal编程技术网

Python 如何将嵌套列表设置为一维?

Python 如何将嵌套列表设置为一维?,python,python-3.x,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:

如何在不使用模块的情况下将嵌套列表设置为一维? 例如:

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

我想只使用函数,不使用任何外部变量。谢谢

您可以使用如下递归函数来实现这一点:

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]

与你想要得到的相比,你的函数给了你什么?使用re:import-re-list1=[[2]],[4[5,6,6,6],7]]str1=str(list1)print(str1)str1=re.sub(r'\[\124;\]','',str1)print(str1.split())