压扁不规则的列表列表
是的,我知道这个主题已经被覆盖过了(这里,这里,这里,这里),但据我所知,除了一个之外,所有解决方案都在这样的列表中失败:
L = [[[1, 2, 3], [4, 5]], 6]
期望的输出是什么
[1, 2, 3, 4, 5, 6]
或者甚至更好,一个迭代器。我看到的唯一适用于任意嵌套的解决方案可以在这个问题中找到:
def flatten(x): result = [] for el in x: if hasattr(el, "__iter__") and not isinstance(el, basestring): result.extend(flatten(el)) else: result.append(el) return result flatten(L)
这是最好的型号吗?我忽略了什么吗?任何问题?
哈士奇WWW
相关分类