【发布时间】:2013-11-06 04:40:11
【问题描述】:
我有一个列表列表...
A = [ [[1,3]], [[3,5], [4,4], [[5,3]]] ]
以下函数输出[1, 3, 3, 5, 4, 4, 5, 3]
def flatten(a):
b = []
for c in a:
if isinstance(c, list):
b.extend(flatten(c))
else:
b.append(c)
return b
但是,我想在最后一级停止展平,以便获得[ [1,3], [3,5], [4,4], [5,3] ]
【问题讨论】:
-
这需要扫描列表以查看是否没有包含列表。
-
@MartijnPieters 是的,我明白了上述内容,但问题是最后一个元素是列表中的列表。
-
@GamesBrainiac:看我的回答;只是在展平之前测试列表。
-
@MartijnPieters 我通过列表理解做到了这一点。但你的是通用的:)
-
您可以使用缺少的post 来检查列表中是否包含列表,然后再进行递归。