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

Posted

技术标签:

【中文标题】无法将局部变量复制到结果数组【英文标题】:Cannot copy a local variable to result Array 【发布时间】:2017-02-13 20:29:45 【问题描述】:

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

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

【问题讨论】:

试试result.append(tempList[:]) 谢谢@jonrsharpe 【参考方案1】:

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

您可以做的是在将tempList 附加到result 之前复制它:

import copy

改变

result.append(tempList)

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

【讨论】:

以上是关于无法将局部变量复制到结果数组的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使使用 setlocal enabledelayedexpansion 也无法访问 for 循环(批处理文件)中的局部变量? [复制]

将局部变量的内容写回结果集列?

无法将来自 Alamofire GET 请求的 JSON 数据保存到函数的局部变量

要同步哪些对象?为啥局部变量不好? [复制]

一次定义2个int类型局部变量,这两个局部变量的地址为啥相差12个字节?

将局部变量从控制器传递到视图