使用生成器以及递归实现二维乃至多维列表转换成一维列表(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实现)的主要内容,如果未能解决你的问题,请参考以下文章

原生JavaScript+HTML5实现树形目录结构一维数组生成多维数组detailssummary

为何说一维空间到多维空间可以实现相互转换?

PHP二维数组转一维数组

如何把二维表转成一维表

将多维数组转换为一维数组的算法

php中一维或多维数组去除重复项