一个蟒蛇拼图

时间:2016-04-29 08:02:53

标签: python

我遇到了以下蟒蛇拼图:

  x=4*[[]] # x is now [[],[],[],[]]
  for i in range(len(x)): x[i]+=[i];
  print x;
  # this returns [[0,1,2,3],[0,1,2,3],[0,1,2,3],[0,1,2,3]]

现在,如果我改为:

  x=[[],[],[],[]];
  for i in range(len(x)): x[i]+=[i];
  print x;
  # this returns [[0],[1],[2],[3]]

问题是,为什么?

我还发现如果代码改为

  x[i] = x[i] + [i]

然后我们在两种情况下都有

  [[0],[1],[2],[3]]  

有人知道为什么python会以这种方式运行吗?

编辑:我的问题的前半部分在重复参考中得到解答,下半部分由@joriki解释。

0 个答案:

没有答案