[[]] * 4和[[],[],[],[]之间有什么区别?

时间:2015-08-03 15:43:51

标签: python

我创建两个看起来相同的列表

x = [[]]*4
y = [[],[],[],[]]

因为当我print x, y时,他们会给我相同的输出[[],[],[],[]]。但是,当我对它们应用相同的操作x[0].append((1,2)), y[0].append((1,2))时,它们会给我不同的结果

print x  >> [[(1, 2)], [(1, 2)], [(1, 2)], [(1, 2)]]
print y  >> [[(1, 2)], [], [], []]

为什么会这样?如何修改x以确保xy完全相同?

1 个答案:

答案 0 :(得分:3)

x是一个引用相同列表4次的列表。

y是一个包含4个独立空列表的列表。