Python + 运算符与列表类型一起使用

标签 python python-3.x list

假设我的列表 a 是 [1,2,3],它指向地址 53367992

>>> a = [1,2,3]
>>> id(a)
53367992

现在,当我将 [9] 添加到此列表中时,我了解了地址的更改,现在 l 指向 53368552

>>> a = a + [9]
>>> a
[1, 2, 3, 9]
>>> id(a)
53368552

在下面的例子中,我不明白为什么即使在将 [4] 添加到 a 之后 a 仍指向相同的地址

>>> a = [1,2,3]
>>> id(a)
53361720
>>> a += [9]
>>> a
[1, 2, 3, 9]
>>> id(a)
53361720

你们能解释一下 a = a +[9] 之间有什么区别吗? 和列表中的 += [9] (为什么这充当附加)操作?

最佳答案

列表是可变的。诸如 .append() (或 +=/__iadd__ 之类的方法)之类的方法会更改列表本身(就地)并且不会创建一个新实例。

另一方面,

+ (__add__) 将返回一个新实例。

关于Python + 运算符与列表类型一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298491/

相关文章:

python-3.x - PyTorch 和 CUDA 驱动程序

python - 如何在字典列表中进行键值比较?

python - 在 python 列表类型结构中合理存储 10 亿多个值

Python 套件测试不运行测试

python - 如何在 Python 中仅使用 "A-Z","a-z","0-9"和 "_"对 UTF-8 字符串进行编码

python - gRPC:Rendezvous 终止(StatusCode.INTERNAL,收到 RST_STREAM,错误代码为 2)

python - 按组件对字符串列表进行排序

python - 通过 UDP 发送字节列表

python - 如何在后台运行 django 应用程序

python - 从 HTML 中提取脚本标签内的字符串