我尝试实现递归算法:'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
我无法弄清楚为什么会发生......
答案 0 :(得分:0)
build_paths()
返回一个列表,extend
返回None(它修改了它的参数),所以你想要:
Result = build_paths(m,n)
Result.append(Move[0])