有人能帮帮我吗! 我找不到错误的原因。如果我运行它一次,它工作正常,但是当我用相同的参数再次调用相同的方法时,它会保留列表的最后一个会话,而我从未保存它。我试着使用一个临时变量,但在我运行一次之后,它也被修改了( 此算法是:
def searchin(position, mattwo):
listpos = -1
indexone = -1
# - - - - - -
for i in mattwo:
listpos += 1
for o in i:
if o == position:
indexone = i.index(o)
return listpos, indexone
def repos(reposition, listsone):
cero, replacement = searchin('0',listsone),searchin(reposition,listsone)
modded = listsone
modded[replacement[0]][replacement[1]],modded[cero[0]][cero[1]] = '0', reposition
mat = [['5','4','1'],
['0','6','8'],
['7','3','2']]
repos('5',mat)
repos('7',mat)
方法serachin()返回我们要查找的元素在矩阵3x3中的位置。工作正常吗?没有错误
repos()方法就是问题所在。在我运行它之后,矩阵mat会随着上次运行的结果发生变化,但我从未保存它
这就是你想做的吗
输出:
您需要在
repos
中执行listone
的深度复制将
from copy import deepcopy
添加到文件顶部,然后将modded = listsone
更改为modded = deepcopy(listsone)
。在repos
函数的末尾,返回modded
。调用repos
时,将返回值赋给变量。例如,将repos('5',mat)
更改为some_variable = repos('5',mat)
相关问题 更多 >
编程相关推荐