相同点:+ 和 += 都是用于求和/连接运算的
不同点:
对于可变对象来说 += 和 + 是不一样的(set和dict没有这两个操作),可变对象 + 相当于对原对象 + 之后产生一个新对象
可变对象 += 相当于修改原对象内部的值,并没有修改原对象,也就是修改前后对象的内存地址不变(id:内存地址的整数表示)
示例代码如下所示:
>>> ls = [1, 2, 3]
>>> ls1 = ls + [1, 2, 3]
>>> print(id(ls))
1773458052104
>>> print(id(ls1))
1773489987912
>>> ls += [1, 2, 3]
>>> print(id(ls))
1773458052104
但是对于不可变对象来说 += 和 + 是一样的,都会产生一个新的对象
示例代码如下所示:
(1)原子对象(数值)
>>> count =0
>>> print(id(count))
140716617268256
>>> count += 1
>>> print(id(count))
140716617268288
>>> count = count + 1
>>> print(id(count))
140716617268320
(2)元祖
>>> tu = (1, 2, 3)
>>> print(id(tu))
1773489880344
>>> tu += (1, 2, 3)
>>> print(id(tu))
1773488429864