无法遍历字典中的元组

Can't iterate through tuple in dictionary

所以我是这样制作的 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()的语法来理解我不认为的问题。

for i in len(st):

您正在尝试迭代一个 int(len() return 值),正如它所说的。

并且 int 不是可迭代对象。

也许你的意思是:

for i in st.items():
    print(i[0])

for i in st.items():
    print(i[1])

取决于您想要键还是值?

您也可以直接遍历 st.keys()st.values() 然后。

(len) 函数 returns 一个表示集合长度的整数。您需要 range() 函数:

for i in range(len(st)):
    print(st[i][0])