Tengo una lista de matrices y me gustaría obtener el producto cartesiano de los elementos en las matrices.¿Cómo aplicar itertools.product a elementos de una lista de listas?
voy a utilizar un ejemplo para hacer esto más concreto ...
itertools.product parece hacer el truco, pero estoy atascado en un pequeño detalle.
arrays = [(-1,+1), (-2,+2), (-3,+3)];
Si hago
cp = list(itertools.product(arrays));
consigo
cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Pero lo que quiero conseguir es
cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
He intentado algunas cosas diferentes:
cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Todos me dio CP0 en lugar de CP1.
¿Alguna idea?
Gracias de antemano.
usted ya tiene las respuestas a continuación, pero esto tiene algunos casos un buen uso de la función itertools producto: https://www.hackerrank.com/challenges/itertools-product – Afflatus