列表扩展
- + :将加号两边的列表进行拼接得到一个新的列表(重新分配的内存空间)
- +=:将+=右边的列表追加到左边的列表,原地址空间首地址保持不变
- listA.append(listB):将listB列表作为一个元素添加到listA列表尾(仅占用listA一个元素空间),原地址空间首地址保持不变
- extend等价于+=
+扩展列表
listA = [1, 2, 3]
listB = [4, 5, 6, 7]
print(listA, "addr:0x%x" % id(listA))
print(listB, "addr:0x%x" % id(listB))
listC = listA + listB # 拼接结果存放在重新分配内存空间中
print(listC, "addr:0x%x" % id(listC))
代码输出:
[1, 2, 3] addr:0x1be35d25208
[4, 5, 6, 7] addr:0x1be35d25408
[1, 2, 3, 4, 5, 6, 7] addr:0x1be35e5a908
+=扩展列表
listA = [1, 2, 3]
listB = [4, 5, 6, 7]
print(listA, "addr:0x%x" % id(listA))
print(listB, "addr:0x%x" % id(listB))
listA += listB # 在原有listA的空间后追加listB的所有成员
print(listA, "addr:0x%x" % id(listA))
代码输出:
[1, 2, 3] addr:0x1f24ab351c8
[4, 5, 6, 7] addr:0x1f24ab353c8
[1, 2, 3, 4, 5, 6, 7] addr:0x1f24ab351c8
append追加元素
listA = [1, 2, 3]
listB = [4, 5, 6, 7]
print(listA, "addr:0x%x" % id(listA))
print(listB, "addr:0x%x" % id(listB))
listA.append(listB) # 将listB作为一个成员追加到listA后
print(listA, "addr:0x%x" % id(listA))
代码输出:
[1, 2, 3] addr:0x2ba7f355208
[4, 5, 6, 7] addr:0x2ba7f355408
[1, 2, 3, [4, 5, 6, 7]] addr:0x2ba7f355208
extend扩展列表
listA = [1, 2, 3]
listB = [4, 5, 6, 7]
print(listA, "addr:0x%x" % id(listA))
print(listB, "addr:0x%x" % id(listB))
listA.extend(listB) # 等价于 +=
print(listA, "addr:0x%x" % id(listA))
代码输出:
[1, 2, 3] addr:0x1da49435208
[4, 5, 6, 7] addr:0x1da49435408
[1, 2, 3, 4, 5, 6, 7] addr:0x1da49435208
本文详细介绍了Python中列表扩展的不同方法,包括使用加号`+`进行列表拼接,使用`+=`进行列表追加,`list.append()`将列表作为单一元素添加,以及`list.extend()`将列表元素逐个追加。通过实例代码展示了这些操作在内存地址和列表内容上的不同影响,帮助理解Python列表操作的内在机制。
1708

被折叠的 条评论
为什么被折叠?



