无法将局部变量复制到结果数组

时间:2017-02-13 20:29:45

标签: python permutation backtracking

它正在打印正确的值,但在结果数组中不存储任何内容。 这是我的代码:

def backtrack(result, nums, tempList):
    if len(tempList) == len(nums):
        result.append(tempList)
    else:
        for i in range(0, len(nums)):
            if not tempList.count(nums[i]):
                tempList.append(nums[i])
                backtrack(result, nums, tempList)
                tempList.pop()

nums = [1, 2, 3]
result = []
backtrack(result, nums, [])
print result

1 个答案:

答案 0 :(得分:0)

您获得空内容列表的原因是您正在使用tempList.pop()修改原始临时列表

您可以做的是复制tempList,然后再附加到result

import copy

更改

result.append(tempList)

mycopy = copy.deepcopy(tempList)
result.append(mycopy)