【问题标题】:Unexpected update result on the quickly nested list in Python [duplicate]Python中快速嵌套列表的意外更新结果[重复]
【发布时间】:2019-02-10 01:00:27
【问题描述】:

为什么不能在下面更新第一个元素而是整列?

>>> x=2*[2*[1]]
>>> x
[[1, 1], [1, 1]]
>>> x[0][0]=2
>>> x
[[2, 1], [2, 1]]

【问题讨论】:

    标签: python list repeat multiplication assign


    【解决方案1】:

    即使这是一个明显的重复,但请使用range

    >>> x=[[1 for i in range(2)] for x in range(2)]
    >>> x
    [[1, 1], [1, 1]]
    >>> x[0][0]=2
    >>> x
    [[2, 1], [1, 1]]
    >>> 
    

    至少还能做到:

    >>> x=[[1]*2 for x in range(2)]
    >>> x[0][0]=2
    >>> x
    [[2, 1], [1, 1]]
    >>> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多