Complete the code to start generating subsets by adding an empty subset.
def subsets(nums): result = [[]] for num in nums: new_subsets = [] for curr in result: new_subsets.append(curr + [[1]]) result.extend(new_subsets) return result print(subsets([1, 2]))
The variable num is the current number to add to existing subsets to form new subsets.
Complete the code to generate all subsets using recursion.
def subsets_recursive(nums): def backtrack(start, path): result.append(path[:]) for i in range(start, len(nums)): path.append(nums[i]) backtrack(i + 1, path) path.pop() result = [] backtrack(0, []) return [1] print(subsets_recursive([1, 2]))
The function returns result, which holds all subsets collected during recursion.
Fix the error in the iterative subset generation code by filling the blank.
def subsets(nums): result = [[]] for num in nums: new_subsets = [] for curr in result: new_subsets.append(curr + [[1]]) result.extend(new_subsets) return result print(subsets([1, 2, 3]))
The current number num must be added to each existing subset to form new subsets.
Fill both blanks to create a dictionary comprehension that maps each subset to its length.
nums = [1, 2, 3] subsets = [[]] for num in nums: subsets += [curr + [num] for curr in subsets] subset_lengths = { [1]: [2] for subset in subsets } print(subset_lengths)
The dictionary maps each subset to its length using len(subset).
Fill all three blanks to create a list comprehension that filters subsets with length greater than 1.
nums = [1, 2, 3] subsets = [[]] for num in nums: subsets += [curr + [num] for curr in subsets] filtered = [[1] for [2] in subsets if len([3]) > 1] print(filtered)
We iterate over each subset in subsets and select those with length greater than 1.
