Python 中的复制操作是指将一个对象复制到另一个变量中
▥Python
𝄐 0
python浅copy和深copy,python深浅拷贝的底层理解,python 深浅拷贝案例,python的浅复制,python深拷贝浅拷贝和赋值,简述python中浅拷贝和深
Python 中的复制操作是指将一个对象复制到另一个变量中。Python 中有两种不同类型的复制操作:浅层复制和深层复制。
浅层复制会创建一个新对象,这个新对象具有与原始对象相同的值,但是对于对象中的其他嵌套对象来说,它们仍然是原始对象中的引用。因此,当修改嵌套对象时,原始对象和浅层复制对象都将被更改。
深层复制会创建一个全新的对象,其中包含所有嵌套对象的副本。因此,对深层复制对象所做的更改不会影响原始对象。
以下是 Python 中浅层复制和深层复制的示例:
python
# 浅层复制示例
original_list = [[1, 2, 3], [4, 5, 6]]
shallow_copy_list = original_list.copy()
# 修改列表中的第一个元素
shallow_copy_list[0][0] = 7
print("Original list:", original_list) # Original list: [[7, 2, 3], [4, 5, 6]]
print("Shallow copy list:", shallow_copy_list) # Shallow copy list: [[7, 2, 3], [4, 5, 6]]
# 深层复制示例
import copy
original_list = [[1, 2, 3], [4, 5, 6]]
deep_copy_list = copy.deepcopy(original_list)
# 修改列表中的第一个元素
deep_copy_list[0][0] = 7
print("Original list:", original_list) # Original list: [[1, 2, 3], [4, 5, 6]]
print("Deep copy list:", deep_copy_list) # Deep copy list: [[7, 2, 3], [4, 5, 6]]
在上面的示例中,可以看到通过浅层复制创建的新列表和原始列表共享内部列表 [1,2,3] 的引用。因此,当修改一个列表时,另一个也会被更改。
相比之下,通过深层复制创建的新列表是完全独立的,不共享任何内部对象。因此,在修改一个列表时不会影响另一个列表。
Python 中的复制操作是指将一个对象复制到另一个变量中。Python 中有两种不同类型的复制操作:浅层复制和深层复制。
浅层复制会创建一个新对象,这个新对象具有与原始对象相同的值,但是对于对象中的其他嵌套对象来说,它们仍然是原始对象中的引用。因此,当修改嵌套对象时,原始对象和浅层复制对象都将被更改。
深层复制会创建一个全新的对象,其中包含所有嵌套对象的副本。因此,对深层复制对象所做的更改不会影响原始对象。
以下是 Python 中浅层复制和深层复制的示例:
python
# 浅层复制示例
original_list = [[1, 2, 3], [4, 5, 6]]
shallow_copy_list = original_list.copy()
# 修改列表中的第一个元素
shallow_copy_list[0][0] = 7
print("Original list:", original_list) # Original list: [[7, 2, 3], [4, 5, 6]]
print("Shallow copy list:", shallow_copy_list) # Shallow copy list: [[7, 2, 3], [4, 5, 6]]
# 深层复制示例
import copy
original_list = [[1, 2, 3], [4, 5, 6]]
deep_copy_list = copy.deepcopy(original_list)
# 修改列表中的第一个元素
deep_copy_list[0][0] = 7
print("Original list:", original_list) # Original list: [[1, 2, 3], [4, 5, 6]]
print("Deep copy list:", deep_copy_list) # Deep copy list: [[7, 2, 3], [4, 5, 6]]
在上面的示例中,可以看到通过浅层复制创建的新列表和原始列表共享内部列表 [1,2,3] 的引用。因此,当修改一个列表时,另一个也会被更改。
相比之下,通过深层复制创建的新列表是完全独立的,不共享任何内部对象。因此,在修改一个列表时不会影响另一个列表。
本文地址:
/show-273649.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。