append() 方法直接在列表尾部追加一个元素;
extend() 方法是在列表末尾一次性追加另一个序列中的多个值;
两种方法都是在原列表上操作,不会产生新列表。
当用+拼接两个列表a,b时,可以通过a = a + b 或 a += b两种方式达到目的。但两种方式还是存在区别的。前者是将两个列表中的值赋给一个新的列表,也就是说会产生新列表;后者则与extend() 方法类似,直接在原列表末尾追加若干元素,不会产生新列表。
下面的程序可以证明以上几种方法是否产生新列表
a = [1,2,3,4]
print(a, id(a))
a.append(5)
print(a, id(a))
a.extend([6])
print(a, id(a))
a += [7]
print(a, id(a))
a = a + [8]
print(a, id(a))
输出结果如下:
[1, 2, 3, 4] 383781799432
[1, 2, 3, 4, 5] 383781799432
[1, 2, 3, 4, 5, 6] 383781799432
[1, 2, 3, 4, 5, 6, 7] 383781799432
[1, 2, 3, 4, 5, 6, 7, 8] 383781798984