0

可能重复:
LIST.append(1) 和 LIST = LIST + [1] (Python) 有什么区别

我对参数如何传递给函数及其可变性有疑问,尤其是在列表的情况下。

考虑以下...

def add_list(p):
    p = p + [1]

def append_list(p):
   p.append(1)

p = [1, 2, 3]

add_list(p)
print p

append_list(p)
print p

我得到的输出是......

[1, 2, 3]
[1, 2, 3, 1]

为什么在函数中追加原始列表时会更改,但使用运算符 + 时不会更改?

4

1 回答 1

3

函数中的赋值运算符创建一个新的局部变量。在 *add_list* 函数中,您的p是局部变量。

于 2012-11-18T10:23:30.207 回答