当你传递一个列表给一个函数的时候,函数得到的是对该列表的一个引用。如果函数修改了列表,调用者会看到变化的。比如下面这个 delete_head 函数就从列表中删除第一个元素:

$ cat c.py
#!/bin/python
def delete_head(t):
    del t[0]
    return t
letters = [10, 20, 30]
print(delete_head(letters))
$ python3 c.py
[20, 30]

形式参数 t 和变量 letters 都是同一对象的别名。

python 中函数列表 python列表函数参数_python

因为这个列表被两个框架所公用,所以把它画在了它们之间。

一定要区分修改列表的运算和产生新列表的运算,这特别重要。

比如 append 方法是修改一个列表,

>>> t1 = [1, 2]
>>> t2 = t1.append(3)
>>> t1
[1, 2, 3]

但加号+运算符是产生一个新的列表: 

>>> t3 = t1 + [4]
>>> t1
[1, 2, 3]
>>> t3
[1, 2, 3, 4]

加号+运算符创建了新的列表t3,但并不修改源列表t1。

结束。