Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误“;浮动;_Python - Fatal编程技术网

Python错误“;浮动;

Python错误“;浮动;,python,Python,我得到了TypeError:不能将序列与类型为“float”的非int相乘。这是我的密码: # Define x[i][j] for Gurobi for i in S: for j in D: decvarx[i][j] = m.addVar(lb = 0, obj=c[i][j]*u[i], vtype=GRB.CONTINUOUS, name="x.%d.%d" % (i,j)) 我认为你[我]有问题,但我不是很确定。这是u[i]的代码: # u is an ar

我得到了TypeError:不能将序列与类型为“float”的非int相乘。这是我的密码:

# Define x[i][j] for Gurobi
for i in S:
    for j in D:
        decvarx[i][j] = m.addVar(lb = 0, obj=c[i][j]*u[i], vtype=GRB.CONTINUOUS, name="x.%d.%d" % (i,j))
我认为你[我]有问题,但我不是很确定。这是u[i]的代码:

# u is an array of supply values (indexed on processing facility numbers).

u = []
for i in range(0,max(S)+1):
    u.append([])                            # Add an empty spot for u[i]
for row in range(0,len(FAC_data)):
    i = int(FAC_data[row][0])               # This is the processing facility number
    u[i] = 1000*FAC_data[row][2]            # This is the supply for this processing facility

感谢您提供的任何帮助

我认为主要的问题是您试图创建一个int列表,其中

u = [123,546,887,890]
它是根据不同的设施编号编制的索引

但是,您的循环-

for i in range(0,max(S)+1):
    u.append([])                            # Add an empty spot for u[i]
实际上,这创造了:

u = [[],[],[],[]]
这是一个列表列表。因此,当您尝试将您认为是整数的内容相乘时,实际上是在尝试将单个元素列表相乘。因为列表不是数组,所以您可以选择。与数组不同,列表是动态的。因此,您可以直接将值附加到列表中。现在,如果您的设备编号不是以零开头,我建议您使用字典

u = {}

for row in range(0,len(FAC_data)):
    key = int(FAC_data[row][0]) 
    data = 1000*FAC_data[row][2]
    u[key] = data
要检索数据供以后使用,只需使用:

needed_data = u[facility_id]

字典一开始似乎很吓人,但它们是检索信息的最快方式。

我认为问题在于
c
,而不是
u
。如果
c[i][j]
是一个列表或其他东西,则不能将其乘以浮点数。