如何分离嵌套列表中的元素?例如:[1,[2,3]],我需要打印1、2、3。

0 投票
2 回答
679 浏览
提问于 2025-04-16 23:27

可能重复的问题:
在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]

撰写回答