gpt4 book ai didi

python - 在 Python 中使用 for 循环的 2D 网格

转载 作者:行者123 更新时间:2023-12-02 03:19:59 25 4
gpt4 key购买 nike

我想在 python 中使用 for 循环创建一个 2D 网格。我可以做这样的简单代码:

cols = 10
rows = 10
grid = [[0 for x in range(cols)] for y in range(rows)]
print(grid)

但是当我尝试循环遍历行中的 i 和列中的 j 时,它显示错误:列表索引超出范围。不确定我的编码哪里出了问题?

rows = 10
cols = 10
i = 0
for i in range(rows):
for j in range(cols):
grid[i].append([j])
i += 1

最佳答案

在使用诸如grid[i].append()之类的内容之前,您需要创建一个空子列表。因为最初列表中没有任何内容,并且您引用了不可用的内容。因此,你的错误。 :(

您可以在每个外部迭代中创建一个子列表,并将 0 附加到内部迭代中的上一个子列表:

cols = 10
rows = 10

grid = []
for _ in range(rows):
grid.<b>append([])</b>
for _ in range(cols):
grid[<b>-1</b>]<b>.append(0)</b>

print(grid)

# [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

<小时/>将整个内容合并为一行:

grid = [[0 for _ in range(cols)] for _ in range(rows)]

关于python - 在 Python 中使用 for 循环的 2D 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070211/

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