【问题标题】:Pointers in python, v+=[] vs. v=v+[] [duplicate]python中的指针,v+=[] vs. v=v+[] [重复]
【发布时间】:2015-08-13 08:54:46
【问题描述】:

如果这个问题在某个地方得到答复,我很抱歉,因为 python (2.7) 在这里是一个很大的话题,但我什至不知道如何寻找它。 我有这个代码。

>>> v=[1,2,3]
>>> f=v
>>> v+=[]
>>> f is v
True
>>> v=v+[]
>>> f is v
False

能否向我解释为什么+= 运算符与v=v+ 不同?为什么第一个没有在内存中创建新对象而另一个虽然它们必然是等价的?

【问题讨论】:

    标签: python memory operators


    【解决方案1】:

    通过v=v+[],您正在为v 分配一个新列表v+[]。查看它的id

    >>> v = [1,2,3]
    >>> f=v
    >>> id(v)
    35713992L
    >>> v+=[]
    >>> id(v)
    35713992L
    >>> v=v+[]
    >>> id(v)
    35692232L
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2019-01-08
      • 2020-03-04
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      相关资源
      最近更新 更多