list indices必须是整数,而不是str。战舰

时间:2016-03-31 16:12:19

标签: python string python-2.7 integer indices

以下Python代码:

def CheckIfSunk(Board):
  Row, Column = GetRowColumn()

  if Board[Row][Column] == "A":
    Ships = "Aircraft Carrier"
  elif Board[Row][Column] == "B":
    Ships = "Battleship"
  elif Board[Row][Column] == "S":
    Ships = "Submarine" 
  elif Board[Row][Column] == "D":
    Ships = "Destroyer"
  elif Board[Row][Column] == "P": 
    Ships = "Patrol Boat"
  elif Board[Row][Column] == "P": 
    Ships = "Patrol Boat"
  elif Board[Row][Column] == "N": 
    Ships = "NEW"


  Board[-1][Ships] -= 1
  if Board[-1][Ships] == 0:
    print Ships + " Sunk" 

我收到此错误:

  

Board [-1] [Ships] - = 1   TypeError:字符串索引必须是整数,而不是str

我如何解决这个问题,非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

Ships是一个字符串。 您的Board包含字符串,因此您尝试按str而不是index获取字符串元素。

译员说完全相同:

TypeError: string indices must be integers, not str

答案 1 :(得分:0)

代码的最后第三行

Board [-1] [Ships] - = 1

  

要引用二维数组中的元素,即在PYTHON中包含2个列表的列表,我们使用整数值作为索引。

变量船舶字符串 ,如果不满足上述任何条件,那么无论哪种方式船舶都不是整数。

TypeError: string indices must be integers, not str

因此,您需要使用整数

访问列表(数组