所以这就是我如何制作st
:
st = {}
cursor.execute('select * from store limit 6')
for row in cursor.fetchall():
st[row[0]] = row[0], row[1]
这是一个简单的方法,可以看到我如何尝试获取元组的第一个元素:
for i in len(st):
print st[i][0]
它告诉我type "int" is not iterable
。
我实际上试图使用它的地方就在这里:
costtotal = m.addVars(st[i][0], dc[i][0], obj=mileage[i,j], name="costtotal")
但它一直告诉我长对象在那里不可迭代。这是gurobi代码的一部分,用于迭代地为优化模型制定约束。我试图通过使用st的值的第一个元素作为变量名来制作它们。
st
的值只是数字。简单的循环演示了我的问题,没有必要得到m.addVars()
的语法来理解我不会想到的问题。
答案 0 :(得分:2)
(len)函数返回一个表示集合长度的整数。你需要range()函数:
for i in range(len(st)):
print(st[i][0])
答案 1 :(得分:0)
for i in len(st):
你正试图迭代一个int(len()
返回值),正如它所说的那样。
并且int
不是可迭代对象。
也许你的意思是:
for i in st.items():
print(i[0])
或
for i in st.items():
print(i[1])
取决于您是否需要密钥或值?
您也可以直接迭代st.keys()
或st.values()
。