我正试图在Python3中创建一个rubic多维数据集。我现在正在制作flip
函数
def flip(topSide, frontSide, row, column, direction):
if (direction == "right"):
if (topSide == 1):
if (frontSide == 2):
a = cube[1][row - 1][:]
cube[1][row-1][:] = cube[2][row-1][:]
cube[2][row - 1][:] = cube[3][row - 1][:]
cube[3][row - 1][:] = cube[4][row - 1][:]
cube[4][row - 1][:] = a
print(a)
我将这些面定义为数字。这是:
green = 1
red = 2
yellow = 3
orange = 4
white = 5
blue = 6
当我删除cube[1][row-1][:] = cube[2][row-1][:]
行时,a
是[2,2,2]
。但是如果我不删除那行a
就是[3,3,3]
。在更改a
变量之前,我定义了它,但它仍然会更改。有没有办法将变量a
定义为它应该是什么
如果你不明白我的问题,尽管问吧
让我来给大家演示一下:
这种行为是因为在运行
a = cube[1][row - 1][:]
时,cube[1][row - 1][:]
的引用被分配给变量a
。引用意味着,你知道,内存中的地址。因此,如果cube[1][row-1][:]
被改变,那么a
也会改变。因为它们在内存中引用相同的地址您需要分配它的值,而不是地址。解决方案之一是使用^{} :
相关问题 更多 >
编程相关推荐