如何修复列表错误中的元组

时间:2013-08-13 16:27:43

标签: python list tuples

所以我有这段代码:

Points = [ [400,100],[600,100],[800,100] , [300,300],[400,300],[500,300],[600,300] ,         [200,500],[400,500],[600,500],[800,500],[1000,500] , [300,700],[500,700][700,700][900,700] , [200,900],[400,900],[600,900] ]

它会产生此错误:

  line 43, in <module>
    Points = [ [400,100],[600,100],[800,100] , [300,300],[400,300],[500,300],[600,300] , [200,500],[400,500],[600,500],[800,500],[1000,500] , [300,700],[500,700][700,700][900,700] , [200,900],[400,900],[600,900] ]
TypeError: list indices must be integers, not tuple

我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:3)

你忘记了两个逗号:

[500,700][700,700][900,700]

现在Python看到尝试使用(700, 700)元组索引左侧列表:

>>> [500,700][700,700]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple

第二个[900, 700]'列表'会给你同样的问题,但还没有发挥作用。

通过在:

之间添加逗号来修复它
[500, 700], [700, 700], [900, 700]

或作为完整清单:

 Points = [[400, 100], [600, 100], [800, 100], [300, 300], [400, 300], [500, 300], [600, 300], [200, 500], [400, 500], [600, 500], [800, 500], [1000, 500], [300, 700], [500, 700], [700, 700], [900, 700], [200, 900], [400, 900], [600, 900]]

答案 1 :(得分:2)

你忘了用逗号分隔一些。请参阅修复。

>>> Points = [[400,100], [600,100], [800,100], [300,300], [400,300], [500,300], [600,300] ,[200,500], [400,500], [600,500], [800,500], [1000,500], [300,700], [500,700], [700,700],[900,700], [200,900], [400,900], [600,900]]

忘记逗号会让Python相信你试图用第二个列表访问第一个列表,这会引发错误。

答案 2 :(得分:2)

您需要将每个列表(在外部列表中)与,

分开
Points = [ [400,100],[600,100],[800,100] , [300,300],[400,300],[500,300],[600,300] ,[200,500],[400,500],[600,500],[800,500],[1000,500] , [300,700],[500,700],[700,700],[900,700] , [200,900],[400,900],[600,900] ]