J'ai une liste de tableaux et je voudrais obtenir le produit cartésien des éléments dans les tableaux.Comment appliquer itertools.product aux éléments d'une liste de listes?
Je vais utiliser un exemple pour le rendre plus concret ...
itertools.product semble faire l'affaire mais je suis coincé dans un petit détail.
arrays = [(-1,+1), (-2,+2), (-3,+3)];
Si je
cp = list(itertools.product(arrays));
Je reçois
cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Mais ce que je veux est
cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
J'ai essayé quelques choses différentes:
cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Ils ont tous m'a donné cp0 au lieu de CP1.
Des idées?
Merci d'avance.
Vous avez déjà les réponses ci-dessous, mais cela a quelques bons cas d'utilisation de la fonction du produit itertools: https://www.hackerrank.com/challenges/itertools-product – Afflatus