python的递归,函数的输出是什么,为什么会这样

2025-04-30 02:08:47
推荐回答(1个)
回答1:

我运行了一下,result的结果为[[1, 1], [1, 1], [1, 1], [1, 1]],
你想的得到的结果是不是[[0, 0], [0, 1], [1, 0], [1, 1]] ?
如果是,那么把代码改一改,原因是result里面4个arr是一个对象,要进行拷贝才能使result里面4个元素值不一样
import numpy as np
def backBack(n, cur):
if cur == n:
global result
result.append(arr[::]) #关键点
else:
for i in range(n):
arr[cur] = i
backBack(n, cur + 1)

result = []
arr=initiate(2)
backBack(2, 0)
print(result)