简单的看下三种情况:
1 def changeList(l): 2 l[0] = 5 3 4 def changeList1(l): 5 l = [] 6 7 def changeList2(l): 8 l[:] = [] 10 11 a = [1,2,3] 12 changeList(a) 13 print(a) 14 b = [1,2,3] 15 changeList1(b) 16 print(b) 17 c = [1,2,3] 18 changeList2(c) 19 print(c)
输出结果:
[5, 2, 3] [1, 2, 3] []
第一种情况,因为列表是mutable,所以可以改变。第二种情况只是在changeList1函数中新创建个[]对象,然后命名l。要想在函数中对列表有实际作用,得像changeList2那样。
摘自:https://blog.csdn.net/WUTab/article/details/52101115