python空列表技巧

时间:2012-03-04 11:41:08

标签: python list

  

可能重复:
  Python list confusion

我有一个关于Python列表的小问题:

为什么会这样?

x = [[]] * 4
x[0].append('x') -> [['x'], ['x'], ['x'], ['x']]

1 个答案:

答案 0 :(得分:6)

同一个[]实例正在重复,所以当你追加到第一个'x'时,你实际上将它追加到所有 - 因为它们都是同一个对象!

正确的方法是每次都明确创建一个新的列表实例:

x = [[] for _ in range(4)]