estoy creando una lista con itertools de una lista de rangos, hasta ahora tengo esto:Python creando una lista con itertools.product?
start_list = [xrange(0,201,1),xrange(0,201,2),xrange(0,201,5),xrange(0,201,10),xrange(0,201,20),xrange(0,201,50),xrange(0,201,100),xrange(0,201,200)]
Ahora, sé que si yo fuera a tratar de ejecutar esta línea siguiente que va a matar a mi intérprete de python :
next_list = list(itertools.product(*start_list))
lo que me pregunto es ¿sería posible poner en una discusión que comprueba cada tupla, por la suma de sus elementos y sólo los pone en next_list si es igual a una cierta cantidad?
Tal vez algo como:
next_list = list(itertools.product(*start_list,sum(tuples)=200))
Sé que esto no es correcto y que podría necesitar para comenzar a volver a pensar en la forma en que voy sobre esto. ¿Los rangos de start_list en el generador serán demasiados para poder construir otra lista?
Si intenta averiguar cómo dividir el número entero 200 en 8 términos extraídos de diferentes conjuntos, existen formas más sencillas de calcular next_list. Si estoy contando correctamente, su producto cartesiano tiene 5768123130 artículos distintos para ser iterados, lo que llevará bastante tiempo. – DSM
Hola DSM, gracias por responder. Estaré buscando crear un método más eficiente. – tijko
relacionado: http://stackoverflow.com/questions/1106929/find-all-combinations-of-coins-when-given-some-dollar-value – jfs