因此,我正在尝试解决这个回溯问题,必须找出滚动n
骰子的所有可能结果
我的回溯代码如下所示
def dicRoll(n, chosen = []):
if n==0:
print(chosen)
else:
for i in range(1,7):
chosen.append(i)
dicRoll(n-1, chosen)
del chosen[-1]
这似乎工作得很好!但是,一旦我将del chosen[-1]
替换为chosen = chosen[:-1]
,就会出问题!
功能失调的解决方案:
def dicRoll(n, chosen = []):
if n==0:
print(chosen)
else:
for i in range(1,7):
chosen.append(i)
dicRoll(n-1, chosen)
chosen = chosen[:-1]
我认为两者都做完全相同的事情。引起不同行为的两条线的用法有什么区别?有人可以解释一下。我搜索了SO,但是没有一个问题专门回答了这个问题。