当前位置 博文首页 > 孤寒者的博客:使用生成器以及递归实现二维乃至多维列表转换成一

    孤寒者的博客:使用生成器以及递归实现二维乃至多维列表转换成一

    作者:[db:作者] 时间:2021-07-25 12:31

    第一题:

    将任意一个二维列表转为一维列表:

    a = [[1,2,3,4],[6,8,9,6]]
    
    def fun1(a):
    	for i in a:
    		for j in i:
    			yield j
    
    print(list(fun1(a)))
    

    在这里插入图片描述

    既然可以利用生成器实现将任意二维列表转换为一维列表的功能;
    那么,考虑结合递归利用生成器实现任意多维列表转换为一维列表:

    第二题:

    将任意多维列表转换为一维列表:

    b = [1,2,34,[3,1,54,[1223,432,[3,6,2]]],[3,5,2,[3,4,2]],[1,2,3]]
    
    def fun2(b):
    	try:
    		for i in b:
    			for j in fun2(i):
    				yield j
    	except TypeError:
    		yield b
    
    print(list(fun2(b)))
    

    在这里插入图片描述

    cs