如何複製列表的內容而不僅僅是對Python中列表的引用?在Python中的列表,帶有引用
2
A
回答
5
使用切片符號。
newlist = oldlist
這將第二個名稱分配給同一列表
newlist = oldlist[:]
這會的oldlist每個元素複製到newlist
5
除了被稱爲一個完整的新名單Lizard提到的切片符號,
y您可以同時使用list()
newlist = list(oldlist)
或蜥蜴和gnibbler複製
import copy
newlist = copy.copy(oldlist)
2
的answes是正確的,但我想補充一點,所有這些方面給出一個淺拷貝,即:
l = [[]]
l2 = l[:] // or list(l) or copy.copy(l)
l2[0].append(1)
assert l[0] == [1]
對於深層複製,您需要copy.deepcopy()。
7
看那copy
module,並注意淺層和深層副本之間的區別:
淺層和深層複製之間的差異只爲複合對象(包含其他對象的對象,如列表或相關類實例):
甲淺拷貝構造新化合物的對象,然後(在可能的程度)中插入的引用詮釋將其發送到原件中的對象。
A 深層複製構造一個新的複合對象,然後遞歸地在其中找到原始對象中的副本。
相關問題
- 1. Python中的列表引用
- 2. python beautifulsoup帶有列表的字典表
- 3. 轉換帶引號的列表爲Python列表
- 4. 帶有散列索引的MySQL InnoDB表
- 5. 帶有列表的PYTHON參數
- 6. Python中的引用類型列表
- 7. 在Python中對帶有限制的列表進行混洗
- 8. 在Python模板中顯示帶有超鏈接的列表
- 9. Python + =帶有列表和元組
- 10. Python - 沒有單引號的Sting列表
- 11. 在Python中的列表中獲取列表理解索引
- 12. 使用帶有多列的DB2索引
- 13. Python引用附加列表
- 14. Python:在表中引用行
- 15. python中的排列,帶有扭曲
- 16. 在Python中對列表進行索引
- 17. 帶列表和網格的引導表
- 18. Python列表索引
- 19. 使用python列表的循環引用
- 20. 用Python中的所有值分開坐在同一索引中的列表
- 21. 帶有列表理解的Python中的運行長度編碼
- 22. 帶有嵌套列表的列表理解(Python 3)中的條件語句:
- 23. 正在搜索帶有列表的列表的列表
- 24. 在python中使用帶有多個參數列表的併發映射
- 25. 在帶有主頁面的Aspx頁面中引用CSS表格
- 26. 在外鍵中創建帶有兩個引用的表
- 27. 帶引導列表的角度ng-repeat在線列表
- 28. 打印python列表不帶引號或逗號後的空格
- 29. Python中如何更改在列表中引用的變量
- 30. 在Python中使用循環訪問列表中的索引
請注意,這只是對可變數據的容器有關。包含整數的元組列表不會受到copy.deepcopy的影響,而列表中包含另一個列表。 – nmichaels 2010-07-20 12:40:48