如何修复TypeError:元组索引必须是整数或切片,而不是str

问题描述

我尝试在python中使用纸浆在scipbook.readthedocs.io/en/latest/flp.html中编码问题,然后按照Caylie Cincera的步骤进行操作。这是代码:

from pulp import *
FOODS = ['OATMEAL','CHICKEN','EGGS','MILK']
CUSTOMERS = [1,2,3,4,5]
FACILITY = ['FAC1','FAC2','FAC3']
dem = {1: 80,2: 270,3: 250,4: 160,5: 180}
maxam = {'FAC1': 500,'FAC2': 500,'FAC3': 500}
actcost = {'FAC1': 1000,'FAC2': 1000,'FAC3': 1000}
transp = {'FAC1': {1:4,2:5,3:6,4:8,5:10},'FAC2': {1:6,2:4,3:3,4:5,5:8},'FAC3': {1:9,2:7,3:4,4:3,5:4}}

prob = LpProblem("FacilityLocation",LpMinimize) 

use_vars = LpVariable.dicts("UseLocation",FACILITY,1,LpBinary)  
serv_vars = LpVariable.dicts("Service",[(i,j) for i in CUSTOMERS 
                                               for j in FACILITY],0)
foods_vars = LpVariable.dicts("food",FOODS,0)

prob += lpSum(actcost[j]*use_vars[j] for j in FACILITY) + lpSum(transp[j][i]*serv_vars[(i,j)] for j in FACILITY for i in CUSTOMERS)

但是它给我最后一行错误, TypeError:元组索引必须是整数或切片,而不是str

该如何解决?

错误消息:

TypeError                                 Traceback (most recent call last)
<ipython-input-13-7ff9cd483731> in <module>
      7 foods_vars = LpVariable.dicts("food",0)
      8 
----> 9 prob += lpSum(actcost[j]*use_vars[j] for j in FACILITY) + lpSum(transp[j][i]*serv_vars[(i,j)] for j in FACILITY for i in CUSTOMERS)
     10 

~\Anaconda3\lib\site-packages\pulp\pulp.py in lpSum(vector)
   2226     :param vector: A list of linear expressions
   2227     """
-> 2228     return LpAffineExpression().addInPlace(vector)
   2229 
   2230 

~\Anaconda3\lib\site-packages\pulp\pulp.py in addInPlace(self,other)
    760         elif (isinstance(other,list)
    761               or isinstance(other,Iterable)):
--> 762            for e in other:
    763                 self.addInPlace(e)
    764         else:

<ipython-input-13-7ff9cd483731> in <genexpr>(.0)
      7 foods_vars = LpVariable.dicts("food",j)] for j in FACILITY for i in CUSTOMERS)
     10 

TypeError: tuple indices must be integers or slices,not str

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...