/  Technology   /  powerset

powerset

How to get all subsets of a set? (powerset)

 

A powerset is the set of all the possible subsets of a given set S. A subset is a set that includes no(or)few(or)all the elements of the original set S. It includes both the given set S and an empty set {}. 

Given set: S = {1} 

Powerset: P = {{},{1}}

Given set: S = {1, 2} 

Powerset: P = {{},{1},{2},{1,2}}

Given set: S = {1, 2, 3} 

Powerset: P = {{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}

 

Python is enabled with itertools.combinations(iterable, n) function which returns subsequences of elements from the input iterable length n. This function can be used to print all the subsets of a set of a specified size. Let’s discuss two ways of doing this.

We pass the set as iterable and the size as arguments in the itertools.combinations() to directly obtain the combination list.

# code to print powerset of given size of a set

>>import itertools

>>def power_set(s, n):

   return list(itertools.combinations(s, n))

>>s = {1, 2, 3}

>>n = 2

print(power_set(s, n))

 

Output:

>>[(1, 2), (1, 3), (2, 3)]

 

Here’s another way to print a power set. We use a for loop in itertools.combinations() function and append the list with the combination sets.

#code to print powerset of given size of a set

>>import itertools

>>def power_set(s, n):

   return [set(i) for i in itertools.combinations(s, n)]

>>s = {1, 2, 3, 4}

>>n = 3

>>print(power_set(s, n))

Output:

[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]

 

 

 

Leave a comment