深浅
2021/7/11 23:17:35
本文主要是介绍深浅,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
浅copy
例子1:
1 data = { 2 "name":"alex", 3 "age":18, 4 "scores":{ 5 "语文":130, 6 "数学":60, 7 "英语":98, 8 } 9 } 10 d2 = data 11 data["age"] = 20 12 print(d2)
执行结果:
{'name': 'alex', 'age': 20, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
d2=data相当于只是拿到了data的内存地址,但data里的每个k,v都是有单独的内存地址的。所以d2和data会一直共享这个字典里的数据,不会出现像字符串a=1,b=a, a=2, b依然等于1的情况。
例子2:
1 data = { 2 "name":"alex", 3 "age":18, 4 "scores":{ 5 "语文":130, 6 "数学":60, 7 "英语":98, 8 } 9 } 10 d2 = data.copy() 11 data["age"] = 20 12 data["scores"]["数学"] = 77 13 print(d2) 14 print(data)
执行结果:
{'name': 'alex', 'age': 18, 'scores': {'语文': 130, '数学': 77, '英语': 98}}
{'name': 'alex', 'age': 20, 'scores': {'语文': 130, '数学': 77, '英语': 98}}
注意!浅copy会仅复制dict的第一层数据,更深层的scores下面的值依然是共享一份
深copy
例子1:
1 from copy import deepcopy 2 data = { 3 "name":"alex", 4 "age":18, 5 "scores":{ 6 "语文":130, 7 "数学":60, 8 "英语":98, 9 } 10 } 11 d2 = data.copy() 12 d3 = deepcopy(data) 13 14 data["age"] = 20 15 16 data["scores"]["数学"] = 77 17 print(d3) 18 print(data)
执行结果:
{'name': 'alex', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
{'name': 'alex', 'age': 18, 'scores': {'语文': 130, '数学': 77, '英语': 98}}
d3 和 data这2个dict完全独立,无论有多少层数据。
这篇关于深浅的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门