簡體   English   中英

2 實現棋盤的昏暗列表

[英]2 dim list implementing a chessboard

1. EMPTY = "-"
2. ROOK = "ROOK"
3. board = []
4. for i in range (8):
5.    for j in range (8):
6.        board[i][j] = EMPTY

7. board[0][0] = ROOK
8. board[0][7] = ROOK
9. board[7][0] = ROOK
10.board[7][7] = ROOK

11. print(board)

上面的代碼在第 6 行拋出錯誤,而第 7 行到第 10 行工作正常。 錯誤是: IndexError: list index out of range 為什么我會收到此錯誤,而類似的格式(第 7 行到第 10 行)工作正常?

我剛開始使用 Python,我發現很難把事情弄清楚。

board是一個一維的空列表,您不能使用board[i][j]對其進行索引,但您可以向其添加新項目。 嘗試這個:

...
for i in range (8):
   board.append([])
   for j in range (8):
       board[i].append(EMPTY)
...

這應該打印(為清晰起見格式化):

[
 ['ROOK', '-', '-', '-', '-', '-', '-', 'ROOK'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['-', '-', '-', '-', '-', '-', '-', '-'],
 ['ROOK', '-', '-', '-', '-', '-', '-', 'ROOK']
]

您需要先構建列表,然后才能對其進行索引。 我推薦嵌套列表理解

board = [[EMPTY for _ in range(8)] for _ in range(8)]

我使用_作為虛擬變量,因為它的值實際上並不重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM