代码之家  ›  专栏  ›  技术社区  ›  omid.n

二维数组初始化python

  •  0
  • omid.n  · 技术社区  · 6 年前

    在python中这两个不一样 3.7.1 是吗?

    一。

    all = [[]] * 10
    all[3].append(33)
    
    > [[33], [33], [33], [33], [33], [33], [33], [33], [33], [33]]
    

    2.

    all = [[] for i in range(10)]
    all[3].append(33)
    > [[], [], [], [33], [], [], [], [], [], []]
    

    最初,我尝试了第一个,同时期望从第二个输出,但令人惊讶的是,这并没有发生。有什么线索可以解释为什么在第一个片段中初始化了同一个引用?

    0 回复  |  直到 6 年前