我在列表中有 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函数可以做到这一点吗?请帮我解决这个问题。
答案 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]