为什么两次运行后结果不同?列表之间“+”是什么意思?我通过调试发现第二个代码块中x变量的值始终未变,只有运行到print(x)才发生变化,这是为什么?
#1
x=[1,2,3]
def f(x):
x=x+[4]
f(x)
print(x)
#2
x=[1,2,3]
def f(x):
x+=[4]
f(x)
print(x)
为什么两次运行后结果不同?列表之间“+”是什么意思?我通过调试发现第二个代码块中x变量的值始终未变,只有运行到print(x)才发生变化,这是为什么?
#1
x=[1,2,3]
def f(x):
x=x+[4]
f(x)
print(x)
#2
x=[1,2,3]
def f(x):
x+=[4]
f(x)
print(x)
列表之间+就是拼接列表
第1:x=x+[4],=左边的x是函数内部的,跟外面的x无关,外面的x还是[1,2,3]
第2:x+=[4],唯一的x就是全局的x