代码之家  ›  专栏  ›  技术社区  ›  ruohola

看似相同的代码给出了不同的结果?[副本]

  •  0
  • ruohola  · 技术社区  · 7 年前

    我需要用python创建一个列表列表,所以我键入了以下内容:

    myList = [[1] * 4] * 3
    

    列表如下:

    [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]  
    

    然后我改变了最里面的一个值:

    myList[0][0] = 5
    

    现在我的列表如下:

    [[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
    

    这不是我想要或期望的。有人能解释一下发生了什么事,以及如何避开它吗?

    0 回复  |  直到 9 年前