python定义函数时,列表传递方式

简单的看下三种情况:

 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

posted @ 2018-04-16 20:07  大鱼海棠兮  阅读(478)  评论(0编辑  收藏  举报