从字典中获取变量定义

2024-09-30 01:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想声明一组包含以下列表的所有可能组合的带纸浆的变量:

month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturer = ['China', 'Mexico', 'Taiwan']
demand = ['London', 'Paris', 'Milan']

然后,我将有一本字典(例如),如下所示: '1.China.London''1.China.Paris'

我尝试了以下代码,但我不知道如何存储所有的组合

vlbs = {}
for key in month:
    for kay in manufacturer:
        for eyk in demand:
            vlbs = (str(key)+'.'+str(kay)+'.'+str(eyk))

首先,我没有得到正确的词典。后来:

variables = {var: pl.LpVariable(var, lowBound = 0) for var in vlbs}

我怎样才能正确地解决它


Tags: keyin声明forvarlondonparischina
1条回答
网友
1楼 · 发布于 2024-09-30 01:34:44

可以将元组用作字典键。我认为这使得过滤/搜索比串接和拆分更容易

months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturers = ['China', 'Mexico', 'Taiwan']
demands = ['London', 'Paris', 'Milan']

var_dict = {}

for month in months:
    for manufacturer in manufacturers:
        for demand in demands:
            combo = (month, manufacturer, demand)
            var_name = '.'.join([str(c) for c in combo])
            var_dict[combo] = LpVariable(var_name, lowBound=0) 

# add constraint for month 1
model += lpSum([k for k in var_dict if k[0] == 1]) <= 50

相关问题 更多 >

    热门问题