Write a Python function powerSet() that takes in a finite list object A and returns P(A), the power set of A. The output should be only in the form of list objects. Note: Make sure you are familiar with some of Python's basic built-in list functions and operators, as they will make completing this problem far easier. For example:

Respuesta :

Answer:

#Code segment is written in Python Programming Language

#define Powerset(A)

def Powerset(A):

#Calculate length

Length = len(A)

#iterate through A

masks = [1 << count for count in range(A)]

for count in range(1 << Length):

yield [xy for mask, xy in zip(masks, A) if count & mask]

#Print Powerset

print(list(powerset([1,2,3])))

Explanation:

Line 1 defines the powerset

Line 2 calculates the length

Line 3 gets a range of the power set from 1 to the last

Line 4 checks if the iteration variable is still within range

Line 5 generates the Powerset

The essence of using the yield keyword is to ensure that one do not need to calculate all results in a single piece of memory.

Line 6 is to do the test code.