gpt4 book ai didi

Python/Pygame 网格设计因追加 "index out of range"而失败

转载 作者:行者123 更新时间:2023-12-04 08:38:30 25 4
gpt4 key购买 nike

我正在尝试创建一个从第 2 行第 13 列开始的网格。网格将在第 12 行第 25 列结束。
但是,我一直在 append(0) 行上收到“列表索引超出范围”错误。
显然我不明白 append 是如何工作的。

grid = []
for row in range(2,12):
# Add an empty array that will hold each cell
# in this row
grid.append([])
for column in range(13,25):
grid[row].append(0) # Append a cell

最佳答案

列表的索引总是从 0 开始。range(2, 12)创建从 2 到 12 的数字。但是列表的索引 grid仍然从 0 开始。您需要从 row 中减去 2 :grid[row].append(0) # Append a cell

grid[row-2].append(0)  # Append a cell

使用 len(grid) 获取下一行的索引, 在追加新行之前:
grid = []
for row in range(2, 12):

index_of_next_row = len(grid)
grid.append([])

for column in range(13, 25):
grid[index_of_next_row].append(0)
或者,您可以创建一个 roe 并在该行完成后将其附加到网格中:
grid = []
for row in range(2, 12):

new_row = []

for column in range(13, 25):
new_row.append(0)

grid.append(new_row)
或者更短:
grid = [[0 for cell in range(13, 25)] for row in range(2, 12)]

关于Python/Pygame 网格设计因追加 "index out of range"而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64680567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com