列表是 python 常见的数据结构类型
用于在列表后追加一个数据有“append()”方法
用于在列表后追加多个数据有“+”和“extend()”两种方法
下面介绍“+”和“extend()”这两种方法的异同:
1 extend() 方法
a = [1,2,3]
b = [4,5,6]
print("a id :",id(a))
print("b id :",id(b))
# extend()方法
a.extend(b)
print("extend: a =",a)
print("extend: a id =",id(a))
# 结果
>> a id : 139646799147568
>> b id : 139646799150128
>> extend: a = [1, 2, 3, 4, 5, 6]
>> extend: a id = 139646799147568
可见,列表的extend()方法能够把 b 列表中多个元素追加到 a 里面,而不改变 a 的 id
2 列表加法
a = [1,2,3]
b = [4,5,6]
print("a id :",id(a))
print("b id :",id(b))
# +
a += b
print("+: a =",a)
print("+: a id =",id(a))
# 结果
>> a id : 140080409711152
>> b id : 140080409713712
>> +: a = [1, 2, 3, 4, 5, 6]
>> +: a id = 140080409711152
可见,列表的加法方法能够实现相同的功能,也不改变 a 的 id
3 注意事项
网上其他博客可能会说 列表加法 的追加方式会改变 id
请注意,这是由于他们的实例引入了新的列表,如下所示
a = [1,2,3]
b = [4,5,6]
c = []
print("a id :",id(a))
print("b id :",id(b))
print("c id :",id(c))
# +
c = a + b
print("a =",a)
print("b =",b)
print("c =",c)
print("a id :",id(a))
print("b id :",id(b))
print("c id :",id(c))
>> a id : 140212670542384
>> b id : 140212670544944
>> c id : 140212669314064
>> a = [1, 2, 3]
>> b = [4, 5, 6]
>> c = [1, 2, 3, 4, 5, 6]
>> a id : 140212670542384
>> b id : 140212670544944
>> c id : 140212669289248
可见,c 最开始被初始化为空列表
通过赋值后,id 改变,这才是网上其他帖子未说明的原因