gpt4 book ai didi

python - 为战列舰创建和初始化 5x5 网格

转载 作者:太空狗 更新时间:2023-10-30 00:45:09 25 4
gpt4 key购买 nike

所以我刚刚完成了 CodeAcademy Battleship 问题的一部分,并提交了正确答案,但我无法理解为什么它是正确的。

我们的想法是构建一个 5x5 的网格作为棋盘,其中填满“O”。我使用的正确代码是:

board = []
board_size=5

for i in range(board_size):

board.append(["O"] *5)

但是我很困惑为什么这没有在一行中创建 25 个“O”,因为我从未指定迭代到单独的一行。我试过了

for i in range(board_size):

board[i].append(["O"] *5)

但这给了我错误:IndexError: list index out of range。谁能解释为什么第一个是正确的而不是第二个?

最佳答案

["O"]*5

这将创建一个大小为 5 的列表,并用“O”填充:["O", "O", "O", "O", "O"]

board.append(["O"] *5)

这会将上面的列表附加(添加到列表的末尾)到 board[]。在一个循环中执行此操作 5 次会创建一个包含上述列表中的 5 个的列表。

[["O", "O", "O", "O", "O"],
["O", "O", "O", "O", "O"],
["O", "O", "O", "O", "O"],
["O", "O", "O", "O", "O"],
["O", "O", "O", "O", "O"]]

你的代码没有工作,因为列表在 python 中没有用大小初始化,它只是作为一个空容器 [] 开始。为了让你的工作,你可以这样做:

board = [[],[],[],[],[]]

在你的循环中:

board[i] = ["O"]*5

关于python - 为战列舰创建和初始化 5x5 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21434430/

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