python中a+=a与a=a+a的区别
python中使用a = a + a
创建了一个新的变量a
,覆盖了之前的变量a
。而使用a += a
则是直接对原变量 a
进行操作。下面通过几个例子进行说明:
1. a = [1,2,3] print(id(a))#打印内存地址 a+=a print(a) print(id(a)) 输出结果: 1238454553032 [1, 2, 3, 1, 2, 3] 1238454553032
2. a = [1,2,3] print(id(a)) a = a + a print(a) print(id(a)) 输出结果: 1238454620232 [1, 2, 3, 1, 2, 3] 1238454553032
以上两个只看结果没啥区别,但看内存地址还是可以看出区别来的,接下来继续看:
3. a = [1,2,3] print(id(a)) def add(arr): arr += arr print(id(a)) add(a) print(a) print(id(a)) 输出结果: 1238454620232 1238454620232 [1, 2, 3, 1, 2, 3] 1238454620232
3. a = [1,2,3] print(id(a)) def add(arr): arr = arr + arr print(id(arr)) add(a) print(a) print(id(a)) 输出结果: 1238454553032 1238454620232 [1, 2, 3] 1238454553032
两者区别: =
的使用会直接创建一个新的变量,而+=
则是直接对原变量进行操作。