简单的看下三种情况:
def changeList(l):
l[0] = 5
def changeList1(l):
l = []
def changeList2(l):
l[:] = []
a = [1,2,3]
changeList(a)
print(a)
b = [1,2,3]
changeList1(b)
print(b)
c = [1,2,3]
changeList2(c)
print(c)
输出结果:
[5, 2, 3]
[1, 2, 3]
[]
第一种情况,因为列表是mutable,所以可以改变。第二种情况只是在changeList1函数中新创建个[]对象,然后命名l。要想在函数中对列表有实际作用,得像changeList2那样。