• python dictionary的拷贝与直接赋值


    练习来自于edx上的MITx:6.00.1x
    是建立一个hand的类,需要完成其中一个类的函数。
    函数的实现过程中,用到了类的复制相关。下面以示例的形式来进行相关说明。

    假设现在有两个dic,一个为dic1,另一个为dic2。

    1. dic1 = dic2
      这种形式下,dic1只是dic2的一种别称(alias)。改变其中一个就会改变另一个。
    2. dic1 = dic2.copy()
      这是dictionary的浅拷贝。即只拷贝父对象,而不会拷贝子对象。子对象还是采取直接赋值方式,改变其中一个另一个就会改变。
    3. dic1 = dic2.deepcopy()
      deepcopy需要引入copy模块import copy。这种就会拷贝子对象和父对象。
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    dict1 =  {'user':'runoob','num':[1,2,3]}
     
    dict2 = dict1          # 浅拷贝: 引用对象
    dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
     
    # 修改 data 数据
    dict1['user']='root'
    dict1['num'].remove(1)
     
    # 输出结果
    print(dict1)
    print(dict2)
    print(dict3)
    

    结果会是

    {'num': [2, 3], 'user': 'root'}
    {'num': [2, 3], 'user': 'root'}
    {'num': [2, 3], 'user': 'runoob'}
    
  • 相关阅读:
    第一次作业
    第四次作业
    第五次作业《构建之法》心得体会
    第三次作业
    第二次作业
    第一次作业
    个人简介
    读《构建之法》有感
    第四次博客园作业(2)
    第四次博客园作业(1)
  • 原文地址:https://www.cnblogs.com/litingyu/p/9186214.html
Copyright © 2020-2023  润新知