+和+=之间的区别
为什么它给出不同的输出:
+ 和 += 之间有区别吗
def func1(lst1, lst2):
lst1 += lst2
lst1 = [1, 2, 3]
lst2 = ["a", "b"]
func1(lst1, lst2)
print(lst1)
和
def func1(lst1, lst2):
lst1 = lst1 + lst2
lst1 = [1, 2, 3]
lst2 = ["a", "b"]
func1(lst1, lst2)
print(lst1)
提前致谢
回答
这里的区别在于+=更改了初始列表lst1。同时lst1 = lst1 + lst2创建一个新列表并重写lst1不影响全局对象的本地引用lst1。如果您在函数内部尝试printing lst1,两种情况都会给您相同的结果。