如何複製列表的內容而不僅僅是對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. 轉換帶引號的列表爲Python列表
- 5. 帶有散列索引的MySQL InnoDB表
- 6. 帶有列表的PYTHON參數
- 7. 帶有列表的Python(循環)
- 8. Python中的列表索引
- 9. 在Python中引用相同對象的對象列表列表
- 10. Python中的引用類型列表
- 11. 函數中的Python列表引用。
- 12. 在python中定義一個帶有列表的函數
- 13. 在Python中對帶有限制的列表進行混洗
- 14. 在Python模板中顯示帶有超鏈接的列表
- 15. Python + =帶有列表和元組
- 16. Python - 沒有單引號的Sting列表
- 17. 在Python中的列表中獲取列表理解索引
- 18. 使用帶有多列的DB2索引
- 19. Python引用附加列表
- 20. 索引在Python列表
- 21. Python:在表中引用行
- 22. python中的排列,帶有扭曲
- 23. 返回元素出現在python列表中的所有索引
- 24. 在Python中對列表進行索引
- 25. 帶列表和網格的引導表
- 26. Python列表索引
- 27. Python索引列表
- 28. Python列表索引
- 29. 在Python中調用帶正確參數的方法列表
- 30. 使用python列表的循環引用
請注意,這只是對可變數據的容器有關。包含整數的元組列表不會受到copy.deepcopy的影響,而列表中包含另一個列表。 – nmichaels 2010-07-20 12:40:48