我创建与范围的列表itertools名单,到目前为止,我有这样的:Python创建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)]
现在,我知道,如果我尝试运行此下一行会杀了我的Python解释器:
next_list = list(itertools.product(*start_list))
什么我不知道的,才有可能把在检查每个元组,其项目的总和的参数,如果只等于将它们放在next_list到一定量?
也许是这样的:
next_list = list(itertools.product(*start_list,sum(tuples)=200))
我知道这是不对的,我可能需要开始重新思考我要对这个办法。生成器中的start_list范围是否太多,无法通过构建另一个列表?
如果您试图弄清楚如何将整数200划分为从不同集合中抽取的8个术语,则有更简单的方法来计算next_list。如果我计算正确,你的Cartesian产品有5768123130个不同的项目需要迭代,这需要很长时间。 – DSM
嗨帝斯曼,谢谢你的回应。我会考虑创建一个更有效的方法。 – tijko
相关:http://stackoverflow.com/questions/1106929/find-all-combinations-of-coins-when-given-some-dollar-value – jfs