Python之旅——帶着決心出發(第7步)

一、基礎篇
8. 列表合併 +、+=、append、extend
1. + :將加號兩邊的列表進行拼接得到一個新的列表(重新分配的內存空間)
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]

例:使用+=擴展列表
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]
例:使用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)
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]


例:使用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:0x1922300
[4, 5, 6, 7] addr:0x1922328
[1, 2, 3, 4, 5, 6, 7] addr:0x1922300
[Finished in 0.3s]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章