使用生成器以及递归实现二维乃至多维列表转换成一维列表(python实现)
Posted 孤寒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用生成器以及递归实现二维乃至多维列表转换成一维列表(python实现)相关的知识,希望对你有一定的参考价值。
第一题:
将任意一个二维列表转为一维列表:
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)))
以上是关于使用生成器以及递归实现二维乃至多维列表转换成一维列表(python实现)的主要内容,如果未能解决你的问题,请参考以下文章