python 字典赋值、浅拷贝、深拷贝 您所在的位置:网站首页 python字典创建举例 python 字典赋值、浅拷贝、深拷贝

python 字典赋值、浅拷贝、深拷贝

2024-07-11 12:09| 来源: 网络整理| 查看: 265

# 项目开发中,因字典可修改,所以注意拷贝方式 import copy

 

1. 原字典操作

dict1 = {'user': 'test', 'num': [1, 2, 3]}                  #  原字典 dict2 = dict1                                                       # 直接赋值 dict3 = dict1.copy()                                            # 浅拷贝,只深拷贝父级目录 dict4 = copy.deepcopy(dict1)                             # 深拷贝拷贝,父级目录,子级目录全部拷贝(需导入copy模块)

 

2. 修改原字典

dict1["user"] = "change"       # 修改父级 dict1["num"].remove(1)        # 修改子级 print("更改后的原字典:", dict1) print("赋值字典:", dict2) print("浅拷贝:", dict3) print("深拷贝:", dict4)

# 输出结果:      更改后的原字典: {'user': 'change', 'num': [2, 3]}      赋值字典: {'user': 'change', 'num': [2, 3]}                         # 赋值(父/子级)都改变      浅拷贝: {'user': 'test', 'num': [2, 3]}                                  #  浅拷贝只改变子级      深拷贝: {'user': 'test', 'num': [1, 2, 3]}                             #  深拷贝字典不改变

 

3. 分别修改 赋值、浅拷贝、深拷贝字典  --> 查看原字典变化

# 1.改变赋值字典dict2 dict2["user"] = "test2" print(dict1) >> {'user': 'test2', 'num': [1, 2, 3]}         # 原字典改变 # 2.改变浅拷贝字典dict3 dict3["user"] = 'test33' # 改变父级 dict3["num"].remove(3) # 改变子级 print(dict1) >> {'user': 'test2', 'num': [1, 2]}            # 原字典父级不变,子级随之改变 # 3.改变深拷贝字典dict4 dict4["user"] = "test4" print(dict1) >> {'user': 'test2', 'num': [1, 2]}           #  原字典完全不变

总结:

       ①原字典与赋值

               紧密相连;一方改变,对方随之改变!

       ②原字典与浅拷贝

              父级各自独立,子级紧密相连;一方改变,对方父级不变,子级随之改变!

       ③原字典与深拷贝

                深拷贝独立门户,从此与原字典无关!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有