python - Python 中的 id() 函数

标签 python

在下面的代码中:

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

答案是FalseTrue,但为什么呢?

我认为 L += [4,5] 只是 L = L +[4,5] 的缩写。

最佳答案

x 是一个列表时,

x += y 并不完全等同于 x = x + y。当它是一个列表时,+= 对列表执行就地修改,而不是使用串联创建一个新列表。但是 + 总是创建一个新列表。

关于python - Python 中的 id() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772847/

相关文章:

python - 不确定如何设计 Django 应用程序 - 最佳实践

python - 集中记录方法和记录当前行号

python - 如何在 Linux 上安装 OpenAi 的 Gym Atari 依赖项?

python - 如何用字符串作为 x 轴值绘制两个图

python - 来自 MultiIndex 和 NumPy 结构化数组 (recarray) 的 Pandas DataFrame

python - 无法使用openpyxl保存excel文件

python - 谷歌应用引擎 : How to write large files to Google Cloud Storage

python - tensorflow map_fn 是否支持采用多个张量?

python - Django `extends` 是否接受命名空间解析的模板?

python - BeautifulSoup 误解 <area> 标签