2013-10-11 6 views
0

두리스트가 동일하면 두리스트를 비교하려고합니다. 나는이 목록의 정수를 삽입하고있어Python, TypeError :리스트 인덱스는 str이 아닌 정수 여야합니다.

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 

:

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

나는이 오류가 발생합니다. 이 오류는 무엇을 의미합니까?

+2

위 코드는 추적 코드의 코드와 다릅니다. 그리고 오류 메시지는 꽤 분명합니다. – interjay

+1

또한 요소를 자체와 비교하는 것으로 보입니다. 비교의 양쪽에'grafo.node [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.node'의 내용은 무엇이며,'vb'와'va'의 값은 무엇입니까? – Synthetica

+0

node는 empthy 목록입니다. va는 0, vb는 1입니다. – Rex

관련 문제