TypeError:list indices必须是整数,而不是元组,什么是错误的

时间:2013-11-05 01:10:50

标签: python syntax-error typeerror

Python新手,帮助。 为什么我收到此错误: “TypeError:list indices必须是整数,而不是元组,”

imheight = []
for i in range(0,len(tables)):
    for j in range(0,len(tables)):
      hij = computeHeight(imp[i],imp[j],'Meter')
      imheight[i,j] = hij
      imheight[j,i] = hij

3 个答案:

答案 0 :(得分:5)

这种语法错误:

imheight[i,j] = hij
imheight[j,i] = hij

也许你是这个意思?

imheight[i][j] = hij 
imheight[j][i] = hij

但是再一次,imheight是一维列表,但你假设它是一个二维矩阵。它只有在您首次正确初始化imheight时才有效:

imheight = [[0] * len(tables) for _ in range(len(tables))]

答案 1 :(得分:1)

字典会为您提供所需的分配行为:

imheight = {}

如果你以后需要按某种顺序迭代它,这就像你将它作为一个正确的列表列表一样容易,因为字典不要维持秩序。但是,这可能足够好。

答案 2 :(得分:0)

imheight[i,j] = hij

应该这样写:

imheight[i:j] = hij

表示从i到j的索引。