首页 > 解决方案 > 您可以将多维数组的位置存储在变量中吗?

问题描述

我正在尝试编写一个 rubix 立方体求解器,我想反复调用相同的边缘来检查它的信息。但是三维区域的位置占用了很大的空间,我想把我重复使用的位置放到一个变量中,这样我就可以调用变量而不是一遍又一遍地重写位置。

这就是我的 rubix 立方体的样子:

rubixCube = [
        [["G","G","Y"], ["R","B","O"], ["R","R","O"]],
        [["G","O","O"], ["O","Y","G"], ["R","B","B"]],
        [["Y","W","Y"], ["R","O","O"], ["O","W","W"]],
        [["B","B","W"], ["B","W","G"], ["G","W","R"]],
        [["B","Y","R"], ["Y","R","W"], ["G","Y","B"]], 
        [["O","G","W"], ["B","G","R"], ["Y","Y","W"]]
        ]

这是我反复调用的位置的示例:

if(rubixCube[0][0][1] == "W"):

我可以写一些大致如下的东西吗:

position = [0][0][1]
if(rubixCube[position] == "W"):

标签: python

解决方案


如果你使用一个 numpy 数组

import numpy as np

rubixCube = np.array([
        [["G","G","Y"], ["R","B","O"], ["R","R","O"]],
        [["G","O","O"], ["O","Y","G"], ["R","B","B"]],
        [["Y","W","Y"], ["R","O","O"], ["O","W","W"]],
        [["B","B","W"], ["B","W","G"], ["G","W","R"]],
        [["B","Y","R"], ["Y","R","W"], ["G","Y","B"]],
        [["O","G","W"], ["B","G","R"], ["Y","Y","W"]]
        ])

然后你可以用一个元组索引它

pos = (0, 0, 1)
print(rubixCude[pos])

推荐阅读