在下面的代码中:
L = [1,2,3]
addr1 = id(L)
L = L + [4,5]
addr2 = id(L)
L = [1,2,3]
addr3 = id(L)
L += [4,5]
addr4 = id(L)
print addr1 == addr2
print addr3 == addr4
答案是False
,True
,但为什么呢?
我认为 L += [4,5]
只是 L = L +[4,5]
的缩写。
最佳答案
当 x
是一个列表时,
x += y
并不完全等同于 x = x + y
。当它是一个列表时,+=
对列表执行就地修改,而不是使用串联创建一个新列表。但是 +
总是创建一个新列表。
关于python - Python 中的 id() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772847/