我正在学习初学者编程课程中的对象和参考资料,我正在学校学习,我对于什么构成“对象”感到困惑。具体来说,我不确定如何确定列表列表中有多少个对象。
执行以下操作后,有多少个不同的列表对象,其值为[1,2]?
lst1 = [1, 2]
lst2 = [[1, 2], list(lst1), lst1]
lst3 = list(lst2)
lst3.append([1, 2])
lst4 = []
for lst in lst3:
lst4.append(list(lst))
感谢您的帮助/澄清。
答案 0 :(得分:0)
不同列表[1,2]
的数量为 8 。我们可以通过遍历程序行每行来计算:
lst1 = [1, 2] # we create our first [1,2]
接下来,我们构建列表,例如:
lst2 = [[1, 2], list(lst1), lst1]
# ^ ^
这里我们创建了两个额外的[1,2]
列表(用插入符号^
表示)。第一个是另一个[1,2]
列表文字,第二个是通过调用list(lst1)
。构造函数创建列表的浅副本,因此新列表[1,2]
。
接下来,我们制作lst2
的浅副本:
lst3 = list(lst2)
我们在这里制作没有新的[1,2]
列表:我们创建了一个包含三个元素的新列表,但这些列表都引用了相同的列表{{1 }}
lst2
接下来,我们向lst3.append([1,2])
# ^
添加新 [1,2]
。这样就可以将 distinct lst3
的总量增加到四个。
接下来,我们将遍历[1,2]
并在lst3
中为每个元素制作浅层副本。由于lst3
有四个不同的lst3
个对象,因此我们会引入另外四个[1,2]
个对象:
[1,2]
所以我们总得到:
lst4 = []
for lst in lst3:
lst4.append(list(lst))
# ^
内存布局:
操作后,内存如下:
Expression | Count
-----------+------
lst1 = ... | 1
lst2 = ... | 2
lst3 = ... | 0
lst3.appe. | 1
for ... | 4
-----------+------
TOTAL 8