当然,我可以帮你将这些Python代码转化为Markdown格式的笔记。以下是你的Markdown笔记:
Python中的深浅拷贝
在Python中,我们可以使用深浅拷贝来复制对象。深拷贝和浅拷贝的主要区别在于,对于复合对象(如列表、字典等),深拷贝会创建一个新的复合对象,并且递归地复制原对象中的所有元素,而浅拷贝只会创建一个新的复合对象,但不会复制元素,而是复制元素的引用。
1. 浅拷贝
浅拷贝只拷贝一级容器中的所有元素独立出一个单独的空间。
import copy
# 方法一
lst1 = [1,2,3]
lst2 = copy.copy(lst1)
lst1.append(10)
print(lst2) # 输出:[1, 2, 3]
print(lst1) # 输出:[1, 2, 3, 10]
# 方法二
lst1 = [1,2,3]
lst2 = lst1.copy()
lst1.append(11)
print(lst1) # 输出:[1, 2, 3, 11]
print(lst2) # 输出:[1, 2, 3]
2. 深拷贝
深拷贝把所有层级的容器中所有元素都单独拷贝一份,形成独立的空间。
import copy
lst1 = [1,2,3,[4,5,6]]
lst2 = copy.deepcopy(lst1)
lst1[-1].append(999)
print(lst2) # 输出:[1, 2, 3, [4, 5, 6]]
print(lst1) # 输出:[1, 2, 3, [4, 5, 6, 999]]
# 其他容器的深拷贝
lst1 = (1,2,3,{"a":1,"b":[10,20]})
lst2 = copy.deepcopy(lst1)
lst1[-1]["b"].append(30)
print(lst1) # 输出:(1, 2, 3, {'a': 1, 'b': [10, 20, 30]})
print(lst2) # 输出:(1, 2, 3, {'a': 1, 'b': [10, 20]})
希望这个Markdown笔记对你有所帮助!
标签:10,lst2,lst1,深浅,print,拷贝,copy From: https://www.cnblogs.com/wbcde116/p/18047704