【Python】列表方法“+”与“extend()”区别

列表是 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 改变,这才是网上其他帖子未说明的原因

猜你喜欢

转载自blog.csdn.net/ao1886/article/details/109114069