你的代碼中有另一個問題,其他答案沒有解決。
>>> ['.'] * 5 * 5
['.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.']
您的開發板初始化會創建一個扁平列表,這可能不是您想要的。通常你會使用這個列表的列表。然而,使用重載乘法是一個非常糟糕的方式來創建一個列表的列表:
>>> [['.'] * 5] * 5
[['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.']]
因爲現在:
>>> board = _
>>> board[0][0] = 'hi'
>>> board
[['hi', '.', '.', '.', '.'], ['hi', '.', '.', '.', '.'], ['hi', '.', '.', '.', '.'], ['hi', '.', '.', '.', '.'], ['hi', '.', '.', '.', '.']]
每一行的同一列表副本。您應該更喜歡列表理解,而不是:
>>> board = [['.' for row in range(5)] for col in range(5)]
>>> board
[['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.']]
>>> board[0][0] = 'hi'
>>> board
[['hi', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.']]
您將'rows'和'columns'轉換爲整數,但對新值無效 – Li357