n
浅copy
现有数据
data = {
“name”:“alex”,
“age”:18,
“scores”:{
“语文”:130,
“数学”:60,
“英语”:98,
}
}
d2 = data
data[“age”] = 20
print(d2)
你说d2打印的值里,age是18,还是20?
{‘name’: ‘alex’, ‘age’: 20, ‘scores’: {‘语文’: 130, ‘数学’: 60, ‘英语’: 98}}
为何是20呢? 因为d2=data相当于只是拿到了data的内存地址,但data里的每个k,v都是有单独的内存的地址的。d2,data会一直共享这个dict里的数据,不会出现像之前字符串a=1,b=a, a=2, b依然等于1的情况。
如果我确实想复制一份完成的dict数据怎么办呢?
可以用浅copy语法
data = {
“name”:“alex”,
“age”:18,
“scores”:{
“语文”:130,
“数学”:60,
“英语”:98,
}
}
d2 = data.copy()
data[“age”] = 20
print(d2)
print(data)
输出
{‘name’: ‘alex’, ‘age’: 18,