Невозможно добавить значения в список в другой функции на Leetcode в Python - PullRequest
0 голосов
/ 08 октября 2018

Эй, ребята, я пытаюсь просто добавить списки в список, но по каким-то причинам он не может добавить правильные значения.Вот мой код:

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, напримеритак:

[[],[],[],[],[],[],[],[]]

и я не знаю почему.Если кто-то может помочь, это было бы очень приятно!

1 Ответ

0 голосов
/ 08 октября 2018

Поскольку вы передаете тот же список в свои рекурсивные вызовы .Это совсем не временно.Либо передайте копию, либо явно создайте копию:

def helper(self, mylist, templist, nums, start):
    templist = templist.copy()
    mylist.append(templist)
    ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...