Home >Backend Development >Python Tutorial >How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-24 16:55:21114browse

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

Generating Cartesian Products from Multiple Lists

Getting the Cartesian product of multiple lists, where every possible combination of values is produced, is a common task in programming. Using itertools.product, a powerful Python module available since Python 2.6, you can effortlessly achieve this goal.

To use itertools.product, simply provide the lists you wish to combine as arguments. For example, given the following set of lists:

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

You can obtain the Cartesian product as follows:

import itertools

for element in itertools.product(*somelists):
    print(element)

This code effectively generates all possible combinations of values from the input lists. The output would be:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...

Alternatively, if the lists were explicitly passed as separate arguments, the code would look like this:

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)

By utilizing the flexibility of itertools.product, you can easily handle complex cases where the input data consists of nested lists or lists with varying lengths.

The above is the detailed content of How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn