补充:+= 对于列表的特殊性
+= 在通常情况下,代表先相加再赋值,例如 a += 10,等同于:a = a + 10,先a+10,再赋值给变量a
在函数中,不可变的元素使用+=,就相当于赋值(相加后赋值),也就是说在函数内部定义了局部变量,例如:
def test(num): num += num print(num) num = 10 test(num) print(num) 输出: 20 10 函数中的num为局部变量,相当于num = num +num
但是对于列表,list += list与list = list+list完全是两回事,前者的+=对于列表,执行的是extend追加操作,后者则是重新赋值,例如:
def test(num): num += num print(num) num = [10] test(num) print(num) 输出: [10,10] [10,10] 使用+=,函数中的num是全局变量,num += num,相当于将num追加到num 但是,如果num += num,修改成:num = num + num,则是在函数中定义了一个与全局num同名的局部变量num 输出: [10,10] [10]

浙公网安备 33010602011771号