[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
在我的程序的每一步中,我都会减小可能的值,例如在步骤1中,我可以得到:
[0, 1]
[2, 3]
[1, 3]
[1, 2]
所以我想跟踪所有更改。我正在考虑使用每个变量的故事创建第二个列表(以防出现错误时返回)。像这样:
[0, 1, 2, 3],[0, 1]
[0, 1, 2, 3],[2, 3]
[0, 1, 2, 3],[1, 3]
[0, 1, 2, 3],[1, 2]
在步骤1没问题,我使用append()函数,一切正常。 在接下来的步骤中,append函数不会继续向每行添加项目,而是替换已经插入的项目。例如,在第2步而不是这样做:
[0, 1, 2, 3],[0, 1],[1]
[0, 1, 2, 3],[2, 3],[3]
[0, 1, 2, 3],[1, 3],[3]
[0, 1, 2, 3],[1, 2],[2]
这样做:
[0, 1, 2, 3],[1]
[0, 1, 2, 3],[3]
[0, 1, 2, 3],[3]
[0, 1, 2, 3],[2]
我该如何解决?
答案 0 :(得分:0)
您必须使用列表的副本。复制并从复制的列表中删除元素,然后相应地追加到原始列表。 要复制,
editableList = mainList[:]