Sto creando una lista con itertools da un elenco di intervalli, fino ad ora ho questo:Python crea 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)]
Ora, so che se dovessi provare ad eseguire questo riga successiva si ucciderà la mia interprete Python :
next_list = list(itertools.product(*start_list))
quello che mi chiedo è: sarebbe il possibile mettere in un argomento che controlla ogni tupla, per una somma delle sue voci e li mette solo in next_list se uguale a una certa quantità?
Forse qualcosa di simile:
next_list = list(itertools.product(*start_list,sum(tuples)=200))
So che questo non è giusto e potrei aver bisogno di iniziare a ripensare il modo in cui sto andando su questo. Le gamme di start_list nel generatore saranno troppe per passare alla creazione di un altro elenco?
Se si sta tentando di capire come partizionare il numero intero da 200 a 8 termini tratti da diversi set, ci sono modi più semplici per calcolare next_list. Se conto correttamente che il tuo prodotto cartesiano ha 5768123130 elementi distinti da iterare, ci vorrà un po 'di tempo. – DSM
Ciao DSM, grazie per la risposta. Cercherò di creare un metodo più efficiente. – tijko
related: http://stackoverflow.com/questions/1106929/fut-all-combinations-of-coins-when-given-some-dollar-value – jfs