Я работаю с проблемой оптимизации, зависящей от времени.У меня есть два набора: U = {usr1, ..., usr4}
и T = {0,1,...,23}
.
У меня есть разные наборы переменных и ограничений, некоторые переменные установлены на множестве U, некоторые другие на множестве T, и большинство на обоих.Когда я получаю значения переменных с помощью m.getVars()
, это выглядит так:
a[usr1] = 123
...
a[usr4] = 987
b[0] = 12
b[1] = 34
...
b[23] = 89
c[usr1,0] = 1
c[usr1,1] = 2
...
c[usr1,23] = 1
c[usr2,0] = 2
...
c[usr4,22] = 3
c[usr4,23] = 4
Существует ли эффективный способ создания словаря для более удобной обработки результатов?
Что я ищучто-то вроде этого:
a = {usr1 : 123,
usr2 : 456,
usr3 : 789,
usr4 : 987}
b = {0 : 12,
1 : 34,
...
23 : 89}
c = {usr1 : {0 : 1,
1 : 2,
...}
...
usr4 : { ...
22 : 3
23 : 4}}
Спасибо за помощь.
РЕДАКТИРОВАТЬ:
Я пробовал это:
sols = {}
for var in m.getVars():
name = var.VarName.split('[')[0]
arg =var.VarName.split('[')[1].split(']')[0]
sols[name] = {arg : var.X}
но это делаетне работает: словарь sols
содержит только последний элемент переменных, в данном случае:
sols = {'a' : {'usr4' : 987}
'b' : {'23' : 89}
'c' : {'usr4,23' : 4}}