【发布时间】:2012-11-06 12:15:24
【问题描述】:
可能重复:
What is the difference between LIST.append(1) and 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]
为什么我在函数中追加原始列表时会改变,但如果我使用运算符 + 则不会改变?
【问题讨论】:
-
追加变异。添加副本。
-
简短回答:
append()就地更改列表,+返回一个新列表,它根本不会影响原始列表。
标签: python