创建一个列表,每一步都添加一些元素本身(而不替换它们)

时间:2019-01-12 11:46:28

标签: python list append

我有这个问题:有4个变量,每个变量可以有一个值:{0,1,2,3}。因此,我可以用列表列表来表示它(每个原始文件都显示每个变量的可能值):

[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] 

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您必须使用列表的副本。复制并从复制的列表中删除元素,然后相应地追加到原始列表。 要复制,

editableList = mainList[:]