Python 递归函数中的平面列表函数

Python 递归函数中的平面列表函数,python,recursion,Python,Recursion,我试图写一个函数,得到一个列表,然后返回一个平坦的列表, 比如说 a=[1,2,[3,5,(2,3)]] print(flat(a)) [1,2,3,5,(2,3)] 我写道: def flat(lst,res=[]): if len(lst)==0: return res else: for element in lst: if isinstance(element,list): res.

我试图写一个函数,得到一个列表,然后返回一个平坦的列表, 比如说

a=[1,2,[3,5,(2,3)]]
print(flat(a))
[1,2,3,5,(2,3)]
我写道:

def flat(lst,res=[]):
    if len(lst)==0:
        return res
    else:
        for element in lst:
            if isinstance(element,list):
                res.append(flat(element))
            res.append(element)
    return res
但我的输出是:

[1, 2, 3, 5, (2, 3), [...], [3, 5, (2, 3)]]

你能帮我找出错误吗

可能是重复的哦谢谢我没看到这个。我会删除它。