当前位置 博文首页 > 孤寒者的博客:使用生成器以及递归实现二维乃至多维列表转换成一
将任意一个二维列表转为一维列表:
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