Sometimes, we want to generate set partitions in Python.
In this article, we’ll look at how to generate set partitions in Python.
How to generate set partitions in Python?
To generate set partitions in Python, we can use the more_itertools
module.
For instance, we write:
pip install more-itertools
Then we write:
import more_itertools as mit
lst = [1, 2, 3]
partitions = [
part for k in range(1,
len(lst) + 1) for part in mit.set_partitions(lst, k)
]
print(partitions)
We use list comprehension with mit.set_partitions(lst, k)
to create partitions by dividing it with k
as the boundary.
It returns the part
list which has the partition with k
as the boundary.
And we return a nested list with all the partitions with different values of k
from 1 to len(lst)
.
Therefore, partitions
is [[[1, 2, 3]], [[1], [2, 3]], [[1, 2], [3]], [[2], [1, 3]], [[1], [2], [3]]]
.
Conclusion
To generate set partitions in Python, we can use the more_itertools
module.