1. 程式人生 > >Python遞迴展開巢狀的list

Python遞迴展開巢狀的list

在Python中,用生成器的遞迴的方式展開一個巢狀的list。

def flatten(nested):
	try:
		for sublist in nested:
			if isinstance(sublist,str):
				yield sublist
			else:
				for element in flatten(sublist):
					yield element
	except TypeError:
		yield nested

執行後結果:
>>> list(flatten([[[1],2],[3,[4,'abc']]]))
[1, 2, 3, 4, 'abc']