/  Technology   /  Powerset in Python
Powerset in Python

Powerset in Python

 

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}]

 

Reference:

Powerset in Python

 

Leave a comment