python中的指针,v+=[]vs.v=v+;[]
很抱歉,由于python(2.7)在这里是一个巨大的主题,所以如果有人回答这个问题,我会感到抱歉,但我甚至不知道如何查找它。 我有这个密码python中的指针,v+=[]vs.v=v+;[],python,memory,operators,Python,Memory,Operators,很抱歉,由于python(2.7)在这里是一个巨大的主题,所以如果有人回答这个问题,我会感到抱歉,但我甚至不知道如何查找它。 我有这个密码 >>> v=[1,2,3] >>> f=v >>> v+=[] >>> f is v True >>> v=v+[] >>> f is v False 能给我解释一下为什么+=运算符与v=v+不同吗?为什么第一个不在内存中创建一个新对象,而另一个却在
>>> v=[1,2,3]
>>> f=v
>>> v+=[]
>>> f is v
True
>>> v=v+[]
>>> f is v
False
能给我解释一下为什么
+=
运算符与v=v+
不同吗?为什么第一个不在内存中创建一个新对象,而另一个却在内存中创建一个新对象,尽管它们被绑定为等价的对象?通过v=v+[]
,您正在为v
分配一个新列表。查看其id
:
>>> v = [1,2,3]
>>> f=v
>>> id(v)
35713992L
>>> v+=[]
>>> id(v)
35713992L
>>> v=v+[]
>>> id(v)
35692232L