Python: Cartesian product of two or more given lists using itertools
Write a Python program to compute the Cartesian product of two or more given lists using itertools.
In mathematics, specifically set theory, the Cartesian product of two sets A and B, denoted A × B, is the set of all ordered pairs (a, b) where a is in A and b is in B. In terms of set-builder notation, that is
A table can be created by taking the Cartesian product of a set of rows and a set of columns. If the Cartesian product rows × columns is taken, the cells of the table contain ordered pairs of the form (row value, column
Sample Solution:
Python Code:
import itertools
def cartesian_product(lists):
return list(itertools.product(*lists))
ls = [[1,2],[3,4]]
print("Original Lists:",ls)
print("Cartesian product of the said lists: ",cartesian_product(ls))
ls = [[1,2,3],[3,4,5]]
print("\nOriginal Lists:",ls)
print("Cartesian product of the said lists: ",cartesian_product(ls))
ls = [[],[1,2,3]]
print("\nOriginal Lists:",ls)
print("Cartesian product of the said lists: ",cartesian_product(ls))
ls = [[1,2],[]]
print("\nOriginal Lists:",ls)
print("Cartesian product of the said lists: ",cartesian_product(ls))
Sample Output:
Original Lists: [[1, 2], [3, 4]] Cartesian product of the said lists: [(1, 3), (1, 4), (2, 3), (2, 4)] Original Lists: [[1, 2, 3], [3, 4, 5]] Cartesian product of the said lists: [(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 3), (3, 4), (3, 5)] Original Lists: [[], [1, 2, 3]] Cartesian product of the said lists: [] Original Lists: [[1, 2], []] Cartesian product of the said lists: []
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to generate combinations of a given length of given iterable.
Next: Write a Python program to chose specified number of colours from three different colours and generate all the combinations with repetitions.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics