列出索引类型错误
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", "*"
希望对您有所帮助!
这是我正在尝试的代码 运行
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", "*"
希望对您有所帮助!