2013-10-11 149 views
0

我想比较两个列表的列表,如果他们是平等的。Python,TypeError:列表索引必须是整数,而不是str

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

您上面写的代码与回溯代码不同。错误信息非常清楚。 – interjay

+1

你似乎也在比较一个元素本身。你在比较的两边都有'grafo.no​​de [va] [vb]'。 –

回答

2

错误提示vavb是字符串,所以你不能把它们作为索引。如果它们包含某个要用于索引的整数,则使用[int(va)][int(vb)],它可能会起作用。

interjay是正确的你的代码是不同于追踪!

1

什么是在VA和VB?它需要是一个int,假设该节点是一个列表。如果您确实希望它使用字符串作为索引,请改用dict。
你可能想要做的是:

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

我做了这个变化,并recived: IndexError:列表索引超出范围 我在列表中插入整数。 – Rex

+0

'grafo.no​​de'的内容是什么,'vb'和'va'的值是什么? – Synthetica

+0

节点是一个empthy列表。 va是0,vb是1. – Rex

相关问题