假设我的列表 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/