Python 递归实现的输出

Python 递归实现的输出,python,recursion,Python,Recursion,我尝试实现一个递归算法:“X”是一个全局变量 def build_paths(m,n): Result = [] Move = X[(m,n)][1] if Move[0] == "None": return(Move[0]) else: if Move[0]=="UP": m -= 1 elif Move[0]=="Left": n -= 1 else:

我尝试实现一个递归算法:“X”是一个全局变量

def build_paths(m,n):
    Result = []
    Move = X[(m,n)][1]
    if Move[0] == "None":
       return(Move[0])
    else:
       if Move[0]=="UP":
          m -= 1
       elif Move[0]=="Left":
          n -= 1
       else:
          m -= 1
          n -= 1
       Result = [build_paths(m,n),Move[0]]
    return(Result)
这就产生了

[[[[[[['None', 'LEFT'], 'DIAG'], 'DIAG'], 'DIAG'], 'UP'], 'DIAG'], 'DIAG']
这本质上是我想要的,但我真正想要的是

['None','LEFT','DIAG','DIAG','UP','DIAG','DIAG']
然后我将递归函数的最后第二行改为

Result = [build_paths(m,n)].extend(Move[0])
我认为逻辑上它是正确的,也就是说,我一直在扩展我的列表,但最终,它只输出

None
我不明白为什么会发生这种情况…

构建路径()
返回一个列表,而
extend
不返回任何值(它修改其参数),因此您需要:

Result = build_paths(m,n)
Result.append(Move[0])