在python中查找单个数组中的所有嵌套数组,而不使用扁平化或任何内置函数

在python中查找单个数组中的所有嵌套数组,而不使用扁平化或任何内置函数,python,Python,您好,我需要一个没有任何内置函数的python嵌套列表的单一列表。我做了很多研究,但没有找到平坦或拉威尔函数 例如: input = [1,2,[2,3,[4,5]],[6,7],[8,[9]],10] output = [1,2,2,3,4,5,6,7,8,9,10] 您可以使用递归实现自己的展平函数。这是一个很好的教程,解释了的概念 这里的想法是循环遍历列表中的每个元素,如果遇到子列表,则递归调用当前列表中的相同方法。如果它是有效元素,则将其添加到输出列表中 例如: 输入列表,输出列表=[

您好,我需要一个没有任何内置函数的python嵌套列表的单一列表。我做了很多研究,但没有找到平坦或拉威尔函数

例如:

input = [1,2,[2,3,[4,5]],[6,7],[8,[9]],10]
output = [1,2,2,3,4,5,6,7,8,9,10]

您可以使用递归实现自己的展平函数。这是一个很好的教程,解释了的概念

这里的想法是循环遍历列表中的每个元素,如果遇到子列表,则递归调用当前列表中的相同方法。如果它是有效元素,则将其添加到输出列表中

例如:

输入列表,输出列表=[]: 对于输入列表中的i: 如果isinstancei,请列出: Flatti,输出列表 其他: output_list.appendi 返回输出列表 输入列表=[1,2,3,4,5],[6,7],[8,9],[10] 打印输入列表 产出:

[1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我自己找到了解决办法。以下是解决方案:

c = []
def test(a):
    for val in a:
        if type(val) == list:
            test(val)
        else:
            c.append(val)
return c
a=[1,2,3,4,5],[6,7],[8,9],[10]
print testa不使用任何内置功能。这可以接受吗?您可以使用递归来实现自己的展平函数。@DarrylG这不起作用。您是对的,这只在所有元素都是列表时起作用。建议将函数签名更改为:def flattinput_list,output_list=[]。这样用户就不必在调用时创建或传递输出了。@DarryIG,很好。更新了答案。