列出索引类型错误

list indices wrong type

这是我正在尝试的代码 运行

import random
def createBoard(rows, columns, mines):
    board = [["C" for row in range(rows)],[" " for col in range(columns)]]
    for i in range(0, mines):
        board[[int(random.randrange(rows))],[int(random.randrange(columns))]] = "C", "*"
    return board
createBoard(9, 12, 10)
board = board
print(board)

这是我得到的错误

Traceback (most recent call last):
  File "C:\Users\Josh\Desktop\Python\createBoard.py", line 7, in <module>
    createBoard(9, 12, 10)
  File "C:\Users\Josh\Desktop\Python\createBoard.py", line 5, in createBoard
    board[[int(random.randrange(rows))],[int(random.randrange(columns))]] = "C", "*"
TypeError: list indices must be integers, not tuple

查看 How to define two-dimensional array in python 以了解 Python 中关于二维数组的详细讨论。

基本上,python 中的二维数组不像 board[x, y] 那样工作,它们实际上是 board[x][y] 中的数组数组。

您需要重构您的代码,以便

for i in range(0, mines):
        board[[int(random.randrange(rows))],[int(random.randrange(columns))]] = "C", "*"

看起来更像

for i in range(0, mines): 
    boardfor i in range(0, mines):
    board[int(random.randrange(rows))][int(random.randrange(columns))]] = "C", "*"

希望对您有所帮助!