如何分离嵌套列表中的元素?例如:[1,[2,3]],我需要打印1、2、3。
可能重复的问题:
在Python中将(不规则的)列表列表扁平化
你好,我在用Python处理嵌套列表的时候遇到了一个大问题。我知道应该使用递归函数来解决,但我不知道该怎么做……
2 个回答
0
def flatten(li):
if not isinstance(li, list):
return [li]
rv = []
for ll in li:
rv.extend(flatten(ll))
return rv
print flatten([1,2,3,4])
print flatten([1,[2,3],3,4])
print flatten([1,[2,[3,4,5]],3,4])
print flatten([1,[2,[3,4,5]],3,[]])
给出
[1, 2, 3, 4]
[1, 2, 3, 3, 4]
[1, 2, 3, 4, 5, 3, 4]
[1, 2, 3, 4, 5, 3]
1
如果你有一个列表里面又包含了很多列表,比如说最大深度是1,那么你可以使用下面的代码:
lVals = [1,[2,3]]
res = []
for i in lVals:
if isinstance(i, list):
res.extend(i)
else:
res.append(i)
print res
>>> [1,2,3]