def f(x, y):
x.append(x.pop(0))
x.append(y[0])
return x
>>> a=[1,2,3]
>>> b=[1,2]
>>> f(a,b)
>>> [2, 3, 1, 1]
>>> a
>>> [2, 3, 1, 1]
def f(x, y):
y = y + [x]
return y
>>> a=[1,2,3]
>>> f(4,a)
>>> [1, 2, 3, 4]
>>> a
>>> [1, 2, 3]
谢谢
答案 0 :(得分:2)
+
操作将结果存储在新列表中,而append
操作将新值附加到现有列表中
例如,
def f(x, y):
y = y + [x]
print(y)
y.append(x)
print(y)
a=[1,2,3]
f(4,a)
print(a)
给出
[1, 2, 3, 4]
[1, 2, 3, 4, 4]
[1, 2, 3]
y = y + [x]
创建了一个新列表y
&因此,更改未反映到原始列表a
&后面的append
也会更改新列表y
但
def f(x, y):
y.append(x)
print(y)
y = y + [x]
print(y)
a=[1,2,3]
f(4,a)
print(a)
输出
[1, 2, 3, 4]
[1, 2, 3, 4, 4]
[1, 2, 3, 4]
此处append
操作会在创建新列表a
后更改原始列表y
答案 1 :(得分:0)
简单地说,区别在于append
和+
的功能。 append
在列表中添加新项目而不创建新列表。 +
将两个列表合并在一起并创建一个新列表。
有关详细信息,请参阅DNS's answer here。