今天学习的是刘金玉老师零基础Python教程第90期,主要内容是copy与deepcopy方法复制字典数据。
一、字典的数据赋值
默认情况下,将某个字典A的值通过通过=号赋值给字典B,如果修改了字典A,那么字典B的内容相应也要改变,通过等号赋值实际上是字典B指针的指向产生了变化而已。
案例:
dicA={"bb":"老刘","cc":['小林','小红'],"aa":"老张"}
print(dicA)
dicB=dicA
dicA["aa"]="张三丰"
print("dicB",dicB)
二、字典的数据的复制
1.方法一:字典自带的copy方法。这个方法只针对于一级的键值对复制有效。对于二级数据及更深层次的数据,仍然只是一个指针指向效用,修改被复制的数据,复制的结果仍然要改变。
案例:
dicA={"bb":"老刘","cc":['小林','小红'],"aa":"老张"}
print(dicA)
dicB=dicA.copy()
dicA["aa"]="张三丰"
print("dicB",dicB)
print(dicA)
print("************************")
dicA["cc"][0]="小铃铛"
print("dicB",dicB)
print(dicA)
2.方法二:使用copy库中的deepcopy方法。可以对字典数据进行深度复制。
from copy import deepcopy
dicA={"bb":"老刘","cc":['小林','小红'],"aa":"老张"}
print("dicA",dicA)
dicB=deepcopy(dicA)
dicA["cc"][0]="小铃铛"
print("dicB",dicB)
print("dicA",dicA)