python以递归方式处理列表嵌套

首先,先定义一个列表嵌套列表的数据,如下:

# -*- 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)

递归的宗旨就是:如果参数是列表,就遍历其中的元素,在以该元素作为参数在执行该递归方法(方法内部调用该方法)

执行结果如下图:

python以递归方式处理列表嵌套_第1张图片

完整代码如下:

# -*- 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)

 

你可能感兴趣的:(python)