我很抱歉,如果这个问题在某处得到回复,因为python(2.7)在这里是一个很大的话题,但我不知道如何找到它。 我有这个代码。
>>> v=[1,2,3]
>>> f=v
>>> v+=[]
>>> f is v
True
>>> v=v+[]
>>> f is v
False
可以向我解释为什么+=
运算符与v=v+
不同?为什么第一个没有在内存中创建一个新对象,而另一个虽然它们必然是等价的?
答案 0 :(得分:1)
按v=v+[]
,您要为v+[]
分配一个新列表v
。查看其id
:
>>> v = [1,2,3]
>>> f=v
>>> id(v)
35713992L
>>> v+=[]
>>> id(v)
35713992L
>>> v=v+[]
>>> id(v)
35692232L