谁能帮我解决这个问题?

时间:2021-04-20 15:06:40

标签: python list tuples nested-lists

我在列表中有 N 个元素。元素可以是整数、整数列表或元组,或者列表或字符串列表。我需要提取所有元素并将它们存储在不同的列表中。 例子:

input_list = [1, [2, [3, [4], 5, 6]], None, 'Abc', (7, 8, [9, 10, [11]], )]  

output_list = [1, 2, 3, 4, 5, 6, None, 'Abc', 7, 8, 9, 10, 11]

我试图通过使用递归函数调用来解决它,但失败了。

有什么python函数可以做到这一点吗?请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

这是你的递归函数

input_list = [1, [2, [3, [4], 5, 6]], None, 'Abc', (7, 8, [9, 10, [11]],)]
output_list = []


def sub_items(item):
    if not hasattr(item, '__iter__') or isinstance(item, str):
        output_list.append(item)
    else:
        for sub_item in item:
            sub_items(sub_item)


for item in input_list:
    sub_items(item)
print(output_list)

输出是

[1, 2, 3, 4, 5, 6, None, 'Abc', 7, 8, 9, 10, 11]

答案 1 :(得分:1)

from iteration_utilities import deepflatten

multi_depth_list = [[0,1], [[5]], [6,4]]

flatten_list = list(deepflatten(multi_depth_list))

print(flatten_list)'

输出:

[0, 1, 5, 6, 4]