在Python中如何将一个多维不规则列表转换为一维列表 在Python中如何给字典排序 Python中的元类 在Python中如何将一个多维不规则列表转换为一维列表 例如, L = [[[1, 2, 3], [4, 5]], 6] 期望的输出是 [1, 2, 3, 4, 5, 6] 使用生成器函数实现 使用生成器函数可以使您的示例更容易阅读,并可能提高性能。 Python 2 def flatten(l): for el in l: if isinstance(el, collections.Iterable) and not isinstance(el, basestring): for sub in flatten(el): yield sub else: yield el 我使用2.6中添加的Iterable ABC。 Python 3 在Python 3中,basestring不再是,但你可以使用元组str并bytes在那里获得相同的效果。 该yield from操作符从生成器一次一个返回的项目。这句法委派到子生成器在3.3加入 def flatten(l): for el in l: if isinstance(el, collections.Iterable) and not isinstance(el, (str, bytes)): yield from flatten(el) else: yield el 也可以这样 def flatten(x): if isinstance(x, collections.Iterable): return [a for i in x for a in flatten(i)] else: return [x] 在Python中如何给字典排序 Python中的元类