如何使用递归创建由内部其他列表组成的列表

How can I create a list that is made up of other lists inside using recursion

示例:我有这个列表 [2,3,[1,2]],我希望我的最终列表是 [2,3,1,2]。

但我也有这些类型的列表,[1,(2,[2,3])],我需要以 [1,2,3,2,3] 这种形式保留它。

有谁知道怎么做。这将是一个很大的帮助。

谢谢

所以如果我没理解错的话,你想做的是按顺序创建一个列表及其子列表的所有元素的列表?坦率地说,这听起来像是一个糟糕的主意,但通过递归它是完全可行的:

def elementlist(input, output = []):
    for element in input:
        if not isinstance(element,(tuple,list)):
            output.append(element)
        else:
            elementlist(element,output)
    return output

list1 = [1,(2,[2,3,(2,3)])]
output = elementlist(list1)
print(output)

此解决方案的基本思想是通过列表将其元素添加到输出列表,除非它是列表或元组,在这种情况下,它将被发送到更深的递归级别以获取其个人元素。

您可以使用 tryexcept 而不是使用条件和类型检查 -

def recur(t):
  try:
    for x in t:
      yield from recur(x)
  except:
    yield t
    
print(list(recur([1,(2,[2,3])])))
[1,2,2,3]