zoukankan      html  css  js  c++  java
  • 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'}
    
  • 相关阅读:
    docker搭建主从复制mysql
    mysql主从复制(mariadb)
    docker搭建mysql8.0
    docker安装mysql
    终端配置kxsw
    AJAX教程
    移动端常见布局
    css为什么需要精灵图
    元素的显示与隐藏
    css网页布局总结
  • 原文地址:https://www.cnblogs.com/litingyu/p/9186214.html
Copyright © 2011-2022 走看看