使用递归Python程序将嵌套列表展平
当需要使用递归技术、简单的索引和’isinstance’方法展平给定的嵌套列表时,可以结合递归使用。
递归计算更小问题的输出,然后结合这些比特,给出更大问题的解决方案。
更多Python相关文章,请阅读:Python 教程
例子
下面是展示相同内容的演示代码 –
def flatten_list(my_list):
if my_list == []:
return my_list
if isinstance(my_list[0], list):
return flatten_list(my_list[0]) + flatten_list(my_list[1:])
return my_list[:1] + flatten_list(my_list[1:])
my_list = [[1,2],[3,4], [90, 11], [56, 78], [[34,56]]]
print("The list is :")
print(my_list)
print("The list after flattening is : ")
print(flatten_list(my_list))
输出
The list is :
[[1, 2], [3, 4], [90, 11], [56, 78], [[34, 56]]]
The list after flattening is :
[1, 2, 3, 4, 90, 11, 56, 78, 34, 56]
说明
- 定义了一个名为’flatten_list’的方法,该方法以列表作为参数。
- 它检查列表中第一个元素的数据类型。
- 如果匹配到一个列表,则将第一个元素与第二个到最后一个元素连接并显示。
- 这导致嵌套列表被展平。
- 否则,将留下第一个元素,先将列表反转,然后将正常列表组合并返回输出。
- 在函数之外,定义了一个嵌套列表,并在控制台上显示。
- 通过传递列表作为参数来调用该方法。
- 输出在控制台上显示。