Crear una nueva lista a partir de dos listas mediante multiplicación. Python
¡Buenos días!
Estoy tratando de generar una nueva lista a partir de dos listas, utilizando la operación de multiplicación. A continuación, te muestro paso a paso lo que he hecho:
import itertools
from itertools import product
import numpy as np
import pandas as pd
Parameter_list=[]
Parameter=[range(0,2,1),range(0,2,1)]
Parameter_list=list(itertools.product(*Parameter))
print(Parameter_list)
[(0, 0), (0, 1), (1, 0), (1, 1)]
Luego eliminé el primer valor, que básicamente es la matriz nula:
del Parameter_list[0]
print(Parameter_list)
[(0, 1), (1, 0), (1, 1)]
Continué creando las dos listas de parámetros:
Parameter_A=[range(1,2,1),range(3,6,2),range(10,20,10)]
Parameter_A=list(itertools.product(*Parameter_A))
Parameter_B=[range(0,2,1),range(4,6,2),range(10,20,10)]
Parameter_B=list(itertools.product(*Parameter_B))
print(Parameter_A)
print(Parameter_B)
[(1, 3, 10), (1, 5, 10)]
[(0, 4, 10), (1, 4, 10)]
Y combiné las listas:
comb=list(product(Parameter_A,Parameter_B))
print(comb)
[((1, 3, 10), (0, 4, 10)),
((1, 3, 10), (1, 4, 10)),
((1, 5, 10), (0, 4, 10)),
((1, 5, 10), (1, 4, 10))]
Hasta aquí no hay problema. Pero ahora estoy luchando por crear una nueva lista multiplicando la Lista de Parámetros con la lista comb. El resultado deseado es el siguiente:
[((0, 0, 0), (0, 4, 10)),
((0, 0, 0), (1, 4, 10)),
((0, 0, 0), (0, 4, 10)),
((0, 0, 0), (1, 4, 10)),
((1, 3, 10), (0, 0, 0)),
((1, 3, 10), (0, 0, 0)),
((1, 5, 10), (0, 0, 0)),
((1, 5, 10), (0, 0, 0)),
((1, 3, 10), (0, 4, 10)),
((1, 3, 10), (1, 4, 10)),
((1, 5, 10), (0, 4, 10)),
((1, 5, 10), (1, 4, 10))]
¿Alguien puede ayudarme? ¡Muchas gracias!
davy.ai
Para generar la lista deseada, puedes utilizar un bucle for anidado para iterar a través de ambas listas de parámetros y combinar cada tupla de parámetros con cada tupla de combinación:
Esto dará como resultado: