Я пытался решить проблему со списком наборов мощности в вопросе 78 на Leetcode. Я столкнулся с решением, в котором используется понимание списков и оно работает. Я попытался расширить его и использовать документацию по Python, чтобы убедитесь, что я получаю правильный синтаксис, но я, кажется, попадаю в бесконечный цикл.
Учитывая набор различных целых чисел, nums, вернуть все возможные подмножества (множество мощности).
Примечание. Набор решений не должен содержать повторяющихся подмножеств.
Пример:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Код в решении:
def subsets(nums):
nums.sort()
result = [[]]
for num in nums:
result += [i + [num] for i in result]
return result
Код с моим изменением:
def subsets(nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
result = [[]]
for num in nums:
for list_ in result:
result.append([num] + list_)
return result
Я думаю, что с каждой итерацией цикла for list_ in result:
результат становится больше, и поэтому я бы не дошел до конца, но почему это не тот же случай с пониманием списка? Что мне не хватает?
results_iter = list(results)
) и перебирать ее, пока вы добавляете к исходному спискуresult
. - person Roberto   schedule 24.06.2018list()
можно использовать в списке для создания списка. Другие предложения касались импорта модулей. - person heretoinfinity   schedule 24.06.2018class Solution(object):
Если это требование какой-то системы оценивания, то сократите свой вопрос до минимально воспроизводимого примера а>. - person juanpa.arrivillaga   schedule 24.06.2018