python - 无法将值附加到 Python 中 Leetcode 上不同函数的列表中
问题描述
嘿伙计们,我要做的只是将列表附加到列表中,但由于某种原因它无法附加正确的值。这是我的代码:
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
mylist = []
nums.sort()
self.helper(mylist, [], nums, 0)
return mylist
def helper(self, mylist, templist, nums, start):
mylist.append(templist)
print(templist)
for i in range(start, len(nums)):
templist.append(nums[i])
self.helper(mylist, templist, nums, i + 1)
templist.pop()
templist 打印出正确的输出,如下所示:
[]
[1]
[1, 2]
[1, 2, 3]
[1, 3]
[2]
[2, 3]
[3]
到控制台,但 mylist 只是根据 leetcode 返回一个空列表列表,如下所示:
[[],[],[],[],[],[],[],[]]
我不知道为什么。如果有人可以提供帮助,那就太好了!
解决方案
因为您将相同的列表传递给您的递归调用。这根本不是暂时的。传递一个副本,或显式创建一个副本:
def helper(self, mylist, templist, nums, start):
templist = templist.copy()
mylist.append(templist)
....
推荐阅读
- c# - 如何在 C# 中下载多个 FTP 文件
- reactjs - 单页应用程序加载所有文件缓慢
- javascript - 如何在 React-Hooks 中首先运行 useEffect 部分?
- flutter - 在颤动中理解此代码的问题
- r - Shiny 中的回归输出
- javascript - 如何通过javascript在动态表单字段中显示mysql数据
- c++ - cv::createLineSegmentDetector() 函数的 Opencv4nodejs 插件崩溃。异常只能被 catch(...) 捕获。如何调试异常类型?
- android - com.microsoft.identity.client.exception.MsalClientException:无法执行云发现
- python - Python:写入文件后非常大的int包含空格
- javascript - Javascript:使用香草 javascript 隐藏和显示文本