Python中a += 1与a = a + 1有什么区别?

it2026-08-19  5

Python中a += 1与a = a + 1有什么区别?

分析show me codepython中可变类型与不可变类型

在python中有a += 1和a = a + 1这两种赋值方法,二者的区别是什么

分析

首先python中变量名是变量的标签,因此重新赋值在某种意义上是标签的重新指向,而在a += 1和a = a + 1两个问题上,更准确是说是对于不可变对象类型,是重新开辟空间,这个标签指向新的内存空间,对于可变对象类型,则是在原来内存上做操作。

简言之:

对于可变对象,a += 1 直接在原内存地址上操作a = a + 1开辟新的内存操作对于不可变对象,a += 1和a = a + 1都是在新开辟的空间操作

show me code

# 不可变类型 += >>> a = 1 >>> id(a) 1413313168 >>> a += 1 >>> id(a) 1413313200 # 不可变类型 =+ >>> a = 1 >>> id(a) 1413313168 >>> a = a+1 >>> id(a) 1413313200 # 可变类型 += >>> a = [1] >>> id(a) 2183116152904 >>> a += [1] >>> id(a) 2183116152904 # 可变类型 =+ >>> a = [1] >>> id(a) 2183116152904 >>> a = a+[1] >>> id(a) 2183116155400

对于可变类型,+=内存地址没有改变,而对于不可变类型,内存地址增加了4个字节。而=+这种操作都是增加四个字节。

python中可变类型与不可变类型

图片引自https://www.cnblogs.com/shiyublog/p/10809953.html

更多Python数据科学相关见专题Python数据科学技能索引

最新回复(0)