首先,先定义一个列表嵌套列表的数据,如下:
# -*- coding: utf-8 -*- ''' @author: guxuhua @date: 2019/10/31 递归的方式处理列表嵌套列表的情况 ''' # 首先定义一个列表嵌套列表的数据 ''' 1-5是外层列表 6-10是第二层的列表 11-15是第三层 16-20是第四层 ''' # range函数包头不包尾 deep_list = list(range(1, 6)) # 第二层 second_floor = list(range(6, 11)) # 第三层 third_floor = list(range(11, 16)) # 第四层 fourth_floor = list(range(16, 21)) ''' 第四层的列表作为第三层的元素 第三层的列表作为第二层的元素 。。。 ''' third_floor.append(fourth_floor) second_floor.append(third_floor) deep_list.append(second_floor) print(deep_list)其实就是将定义好的一个列表作为另一个列表的元素,这样就成了列表嵌套了。我这里算是投机取巧了,通过python内置的range函数和list函数组合弄出了多个列表,最后通过append函数实现列表嵌套
底下,就该定义一个递归方法对列表进行处理了,如下:
# @author: guxuhua # @date: 2019/10/31 # @description: 以递归的方式处理集合元素 def get_deep_list(l): if isinstance(l, list): for each_list in l: get_deep_list(each_list) else: print(l)递归的宗旨就是:如果参数是列表,就遍历其中的元素,在以该元素作为参数在执行该递归方法(方法内部调用该方法)
执行结果如下图:
完整代码如下:
# -*- coding: utf-8 -*- ''' @author: guxuhua @date: 2019/10/31 递归的方式处理列表嵌套列表的情况 ''' # 首先定义一个列表嵌套列表的数据 ''' 1-5是外层列表 6-10是第二层的列表 11-15是第三层 16-20是第四层 ''' # range函数包头不包尾 deep_list = list(range(1, 6)) # 第二层 second_floor = list(range(6, 11)) # 第三层 third_floor = list(range(11, 16)) # 第四层 fourth_floor = list(range(16, 21)) ''' 第四层的列表作为第三层的元素 第三层的列表作为第二层的元素 。。。 ''' third_floor.append(fourth_floor) second_floor.append(third_floor) deep_list.append(second_floor) print(deep_list) # @author: guxuhua # @date: 2019/10/31 # @description: 以递归的方式处理集合元素 def get_deep_list(l): if isinstance(l, list): for each_list in l: get_deep_list(each_list) else: print(l) # 调用get_deep_list获取每一个元素 if __name__ == '__main__': get_deep_list(deep_list)