如何复制列表的内容而不仅仅是对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