2013-07-19 21 views
3

我怎麼能簡化下面的Python紙漿語句到的東西更Python,管理和糾正:如何簡化重複的Python PuLP語法?

import pulp as lp 

#delare variables 
#Note that I have to model a 100 year period! 
year_1 = lp.LpVariable("2011", 0, None, lp.LpInteger)  
year_2 = lp.LpVariable("2012", 0, None, lp.LpInteger) 
year_. = lp.LpVariable("201.", 0, None, lp.LpInteger) 
year_n = lp.LpVariable("201n", 0, None, lp.LpInteger) 

#declare constraints 
prob += year_1 - year_0 >= 0 
prob += year_2 - year_1 >= 0 
prob += year_. - year_. >= 0 
prob += year_n - year_n_1 >= 0 

回答

4

製作年份列表,而不是百年變量:

years = [lp.LpVariable(str(2011+i), 0, None, lp.LpInteger) for i in xrange(n)] 

注意,名單是0索引,所以曾經是year_1現在years[0]

你也可以遍歷它的腳本的「聲明的約束」部分:

for year, next_year in zip(years[:-1], years[1:]): 
    prob += next_year - year >= 0