繁体   English   中英

python 中嵌套列表的递归问题

[英]recursion problem with nested lists in python

我有以下代码:

def flat_list(array):
    d=[]
    for i in array:
        if not isinstance(i, list):
            d.append(i)
        else:
            flat_list(i)
    return d

当我调用flat_list([1, [2, 2, 2], 4])时,我希望它返回解包列表 ([1, 2, 2, 2, 4])。 相反,它返回 ([1, 4])。 虽然,如果我尝试(print i)而不是(d.append(i)) ,它会返回未打包的 i。

我读了一篇关于递归的文章,它说返回需要在基本条件之后。

我如何使用 kindda ( return d.append(i) )?

你调用你的 function,但是在递归调用它时不要对它的返回值做任何事情

    else:
        d.extend(flat_list(i))

extend将从flat_list返回的列表中获取所有项目,并将它们添加到您在 function 中创建的列表中

例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM