相关疑难解决方法(0)

递归地展平列表

可能重复:
在Python中展平(不规则)列表

我无法使用python以递归方式展平列表.我已经看到了许多需要列表理解的方法和需要导入的各种方法但是我正在寻找一种非常基本的方法来递归地展平不使用任何for循环的不同深度的列表.我进行了一系列测试,但有两个我无法通过

flatten([[[[]]], [], [[]], [[], []]]) # empty multidimensional list
flatten([[1], [2, 3], [4, [5, [6, [7, [8]]]]]]) # multiple nested list
Run Code Online (Sandbox Code Playgroud)

我的代码

def flatten(test_list):
    #define base case to exit recursive method
    if len(test_list) == 0:
       return []
    elif isinstance(test_list,list) and type(test_list[0]) in [int,str]:
        return [test_list[0]] + flatten(test_list[1:])
    elif isinstance(test_list,list) and isinstance(test_list[0],list):
        return test_list[0] + flatten(test_list[1:])
    else:
        return flatten(test_list[1:])
Run Code Online (Sandbox Code Playgroud)

我很感激一些建议.

python recursion nested list

10
推荐指数
4
解决办法
3万
查看次数

标签 统计

list ×1

nested ×1

python ×1

recursion ×1