(转载)Python:列表作为参数
简单的看下三种情况:
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那样。