python列表浅复制与深复制
作者:野牛程序员:2023-11-06 17:27:06python阅读 2844
Python中,列表的浅复制和深复制是不同的操作,它们有不同的效果和用途。
浅复制是创建一个新的列表,该新列表包含原始列表中的元素的引用。这意味着,新列表和原始列表共享相同的元素对象,如果对元素对象进行修改,这些更改将在原始列表和新列表中都可见。
你可以使用以下方法来创建一个浅复制:
new_list = old_list.copy() # 或者使用切片操作 new_list = old_list[:]
深复制是创建一个新的列表,该新列表包含原始列表中的元素的副本。这意味着,新列表中的元素是原始列表元素的完全独立的副本,对新列表的更改不会影响原始列表,反之亦然。
要执行深复制,可以使用 copy
模块中的 deepcopy
函数:
import copy new_list = copy.deepcopy(old_list)
下面是一个示例,演示浅复制和深复制的区别:
import copy original_list = [1, [2, 3], 4] shallow_copy = original_list.copy() deep_copy = copy.deepcopy(original_list) # 修改原始列表中的一个元素 original_list[1][0] = 99 # 打印浅复制和深复制的结果 print("Original List:", original_list) print("Shallow Copy:", shallow_copy) print("Deep Copy:", deep_copy)
这个示例中,浅复制的列表和原始列表共享内部的子列表,所以对子列表的修改会在两个列表中都反映出来,而深复制创建了一个完全独立的副本,不受原始列表的影响。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:python列表复制
- 下一篇:Python浅拷贝与深拷贝的本质