我有点困惑这是如何工作的。
x = []
y = []
for i in range(5):
y.append(i) # Why does this create full copies of sub lists?
x.append(y)
#x.extend(y) # This works normal
print x
为什么x.append(y)
注意最终结果如下?您能否解释一下是否有一些背景参考值?
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
指向的只有一个对象y
。它从一个空列表开始。每次循环时,您都将使单个对象变长。该列表x
与基本上相同[y, y, y, y, y]
,从而为您提供了所描述的结果。
使用时x.extend(y)
,的当前元素将y
被复制到列表的末尾x
。这是完全不同的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句