tworzę listę z itertools z listy zakresów, tak dalece mam to:Python tworzy listę za pomocą 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)]
Teraz wiem, że gdybym spróbować uruchomić ten następny wiersz będzie zabić mojego interpretera Pythona :
next_list = list(itertools.product(*start_list))
Co Zastanawiam się byłoby możliwe do wprowadzenia w argument, który sprawdza każda krotka, bo suma jego elementów i tylko umieszcza je w next_list jeśli równa określonej kwoty?
Może coś takiego:
next_list = list(itertools.product(*start_list,sum(tuples)=200))
wiem, że to nie jest w porządku, a może muszę zacząć ponownie myśleć drogę Idę na ten temat. Czy zakresy start_list w generatorze będą zbyt duże, aby można było zbudować kolejną listę?
Jeśli próbujesz dowiedzieć się, jak podzielić partycję 200 na 8 terminów z różnych zestawów, istnieją łatwiejsze sposoby obliczania następnej listy. Jeśli się liczę, twój produkt kartezjański ma 5768123130 odrębnych elementów do iteracji, co zajmie sporo czasu. – DSM
Witaj DSM, dziękuję za odpowiedź. Zajmę się tworzeniem bardziej wydajnej metody. – tijko
powiązane: http://stackoverflow.com/questions/1106929/find-all-combinations-of-coins-when-given-some-dollar-value – jfs