Python,TypeError:list indices必须是整数,而不是str

时间:2013-10-11 22:06:30

标签: python python-3.x

我试图比较两个列表是否相等。

if grafo.node[va,vb] == grafo.node[va,vb]:

我收到此错误:

Traceback (most recent call last):
File "C:/Python33/Archive/PythonGrafos/Alpha.py", line 85, in <module>
menugrafos()
File "C:/Python33/Archive/PythonGrafos/Alpha.py", line 55, in menugrafos
Beta.criararesta(grafo,va,vb)
File "C:/Python33/Archive/PythonGrafos\Beta.py", line 29, in criararesta
if grafo.node[va,vb] == grafo.node[va,vb]:
TypeError: list indices must be integers, not tuple

我在列表中插入整数。这个错误意味着什么?

2 个答案:

答案 0 :(得分:2)

错误表明vavb是字符串,因此您不能将它们用作索引。如果它们包含您想要用于索引的某个整数,那么使用[int(va)][int(vb)]它可能会有效。

同样是interjay是对的,你的代码与回溯不同!

答案 1 :(得分:1)

什么是va和vb?它必须是一个int,假设该节点是一个列表。如果您确实希望它使用字符串作为索引,请改用字典 你可能想做的是:

grafo.node[int(va)] == grafo.node[int(vb)]