当前位置:首页python > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击