gpt4 book ai didi

python - Python:如何反向访问矩阵中的对角线?

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

我正在尝试创建井字游戏程序,并且需要以3x3矩阵返回对角线。

说我的董事会看起来像这样:

board = [
["a", "x", "b"],
["c", "o", "d"],
["e", "f", "g"]
]


我有前向矩阵:

diag = [board[i][i] for i in range(len(board))]


返回:

>>> diagonal(board, 1)
['a', 'o', 'g']


(如果可能的话,有人可以向我解释为什么这样做。我不太理解列表...)。

我将如何获得相反的结果?说 ['b', 'o', 'e']

谢谢!

最佳答案

您的面板是一个包含三个项目的列表,这些项目也是一个列表。因此,i将从0迭代到2(包括0和2)。通过调用board [i] [i],您正在调用三个命令:
board[0][0]
board[1][1]
board[2][2]
在基本的一维列表中,board [0]将指向第一个元素,board [1]将指向第二个元素,依此类推。
使用2D数组,在命令board[0][0]中,您将调用电路板第一个元素的第一个元素(因此基本上是"a")。接下来,您将移至右侧的第一步,而移至底部的第一步,您将调用开发板的第二个元素的第二个元素("o")。这是代码背后的逻辑。

要获得另一个对角线,必须使用:

diag = [board[i][len(board) - 1 - i] for i in range(len(board))]


这意味着您将调用 board[0][0],而不是调用 board[0][3 - 1 - 0]。下一个迭代将调用 board[0][2],下一个 board[1][1]。首先从长度中减去1,因为长度计数从1开始(例如,板中有三个元素 board[2][0]),而索引从0开始( len(board) = 3不存在,只有 board[0][3]board[0][0])。
希望这可以帮助!

关于python - Python:如何反向访问矩阵中的对角线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61641081/

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