【发布时间】:2021-03-12 22:26:13
【问题描述】:
编辑:让我澄清原始帖子中的神秘变量
分配一些变量
WHITE = 0 #UP
BLUE = 1 #DOWN
ORANGE = 2 #LEFT
GREEN = 3 #FRONT
RED = 4 #RIGHT
YELLOW = 5 #BACK
首先,我创建一个 janky 矩阵:
cube = np.array([
np.array([
np.array([WHITE, WHITE, WHITE]),np.array([WHITE, WHITE, WHITE]), np.array([WHITE, WHITE, WHITE])
]),
np.array([
np.array([BLUE, BLUE, BLUE]), np.array([BLUE, BLUE, BLUE]), np.array([BLUE, BLUE, BLUE])
]),
np.array([
np.array([ORANGE, ORANGE, ORANGE]), np.array([ORANGE, ORANGE, ORANGE]), np.array([ORANGE, ORANGE, ORANGE])
]),
np.array([
np.array([GREEN, GREEN, GREEN]), np.array([GREEN, GREEN, GREEN]), np.array([GREEN, GREEN, GREEN])
]),
np.array([
np.array([RED, RED, RED]), np.array([RED, RED, RED]), np.array([RED, RED, RED])
]),
np.array([
np.array([YELLOW, YELLOW, YELLOW]), np.array([YELLOW, YELLOW, YELLOW]), np.array([YELLOW, YELLOW, YELLOW])
])
])
np.arrays 是我调试的尝试之一。
接下来,我尝试用元组解构来交换列、行等:
rubiks[LEFT][:,2], rubiks[DOWN][0] = rubiks[DOWN][0], rubiks[LEFT][:,2]
结果就好像被迭代应用了一样:
[[1 1 1]
[1 1 1]
[1 1 1]]
[[2 2 1]
[2 2 1]
[2 2 1]]
应该是:
[[2 2 2]
[1 1 1]
[1 1 1]]
[[2 2 1]
[2 2 1]
[2 2 1]]
我假设我误解了某些东西,但这不应该像预期的那样交换值吗?
【问题讨论】:
-
里面有很多未定义的变量
-
但是如果你想给切片赋值,我认为你只需要一次做一个
-
使用 numpy 很可能给切片赋值,语法见stackoverflow.com/questions/10923212/…
-
此外,在此方法中仅交换行会产生相同的错误结果
-
没错,一次一片
标签: python numpy tuples iterable-unpacking