一、基礎篇
8. 列表合併 +、+=、append、extend
1. + :將加號兩邊的列表進行拼接得到一個新的列表(重新分配的內存空間)
2. +=:將+=右邊的列表追加到左邊的列表,原地址空間首地址保持不變
3. listA.append(listB):將listB列表作爲一個元素添加到listA列表尾(指佔用listA一個索引),原地址空間首地址保持不變
4. extend等價於+=
2. +=:將+=右邊的列表追加到左邊的列表,原地址空間首地址保持不變
3. listA.append(listB):將listB列表作爲一個元素添加到listA列表尾(指佔用listA一個索引),原地址空間首地址保持不變
4. 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 = listA + listB #拼接結果存放在重新分配內存空間中
print(listA, "addr:0x%x" % id(listA))
輸出結果:[1, 2, 3] addr:0x1442300
[4, 5, 6, 7] addr:0x1442328
[1, 2, 3, 4, 5, 6, 7] addr:0x1442378
[Finished in 0.4s]
[4, 5, 6, 7] addr:0x1442328
[1, 2, 3, 4, 5, 6, 7] addr:0x1442378
[Finished in 0.4s]
例:使用+=擴展列表
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
print(listA, "addr:0x%x" % id(listA))
輸出結果:
[1, 2, 3] addr:0x1762300
[4, 5, 6, 7] addr:0x1762328
[1, 2, 3, 4, 5, 6, 7] addr:0x1762300
[Finished in 0.4s]
例:使用appendlistA = [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)
print(listA, "addr:0x%x" % id(listA))
輸出結果:
[1, 2, 3] addr:0x1792300
[4, 5, 6, 7] addr:0x1792328
[1, 2, 3, [4, 5, 6, 7]] addr:0x1792300
[Finished in 0.3s]
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:0x1922300
[4, 5, 6, 7] addr:0x1922328
[1, 2, 3, 4, 5, 6, 7] addr:0x1922300
[Finished in 0.3s]