【发布时间】:2022-08-10 00:46:58
【问题描述】:
r = [\"EAF\",\"AOD\",\"LF\",\"EAs\",\"EAd\",\"ALs\",\"ALd\",\"LCs\",\"LCd\",\"H\"] #sets of resources
i = [\"E\",\"A\",\"L\",\"EA\",\"AL\",\"LC\"] #sets of tasks
t = [1,2,3,4,5,6,7,8,9,10,11,12] #number of timeslots
Hour=2
Price = {\'Hour1\': 100 ,\'Hour2\': 200}
R= {\'EAF\':2,\'AOD\':2,\'LF\':2,\'EAs\':1,\'EAd\':1,\'ALs\':1,\'ALd\':1,\'LCs\':1,\'LCd\':1,\'H\':1}#resource keys and its values
N = {\'E\':1 , \'A\' : 1 , \'L\' : 1 , \'EA\' : 1, \'AL\' :1, \'LC\' :1 } #task keys and its values
#µ Declaration
task_duration={\'EAF\':5 , \'AOD\': 4 ,\'LF\': 1, \'EA\':1, \'AL\':1, \'LC\':1}
#Equipment Usage
for r in R :
for i in N:
u[r][i] = [-1] +[0]*(task_duration-1)+[1]
#Before Transfer
for i,r in [(EAF,EAs),(AOD,ALs),(LF,LCs)]:
u[r][i] = [0] +[0]*(task_duration-1)+[1]
#After Transfer
for i,r in [(AOD,EAd) ,(LF,ALd)]:
u[r][i] = [-1] +[0]*(task_duration-1)+[0]
#Transfer tasks:
#Before Transfer:
for i,r in [(EA,EAs),(AL,ALs),(LC,LCs)]:
u[r][i] = [-1]*(task_duration)
#After Transfer:
for i,r in [(EA,EAd),(AL,ALd),(LC,LCd)]:
u[r][i] = [1]*(task_duration)
错误:
TypeError Traceback (most recent call last)
Input In [19], in <cell line: 20>()
20 for r in R :
21 for i in N:
---> 22 u[r][i] = [-1] +[0]*(task_duration-1)+[1]
24 #Before Transfer
25 for i,r in [(EAF,EAs),(AOD,ALs),(LF,LCs)]:
TypeError: unsupported operand type(s) for -: \'dict\' and \'int\'
我不知道这个错误。谁能告诉我?列表中有元组。我正在尝试从字典中提取数据及其各自的键和值。使用列表对整数数据执行一些操作。然后它应该返回一个列表。例如:u[r][i] = [-1,0,0,1]。这就是我想要得到的结果。我完全不确定这个错误。如果有人知道,请告诉我。
-
task_duration是字典,1 是数字。如何从字典中减去一个数字?在修复代码之前,请考虑预期的行为是什么。 -
task_duration是一个dict,1是一个整数。所以-运算符不能在那里使用。就像你想做apple - 1一样。那没有意义。 -
你写了
task_duration={\'EAF\':5 , \'AOD\': 4 ,\'LF\': 1, \'EA\':1, \'AL\':1, \'LC\':1}。你期望{\'EAF\':5 , \'AOD\': 4 ,\'LF\': 1, \'EA\':1, \'AL\':1, \'LC\':1} - 1的结果是什么?
标签: python list dictionary integer operands