1、赋值引用

b = a: a 和 b 都指向同一个对象。

2、浅拷贝

b = a.copy():  a 和 b父对象是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

3、深拷贝

b = copy.deepcopy(a): 完全拷贝了父对象及其子对象,a 和 b 的父对象及其子对象,两者都是完全独立的。

实例

import copy
c0 = { '' : 1 , 1 : [1,2]}
c1 = c0
c2 = copy.copy(c0)
c3 = copy.deepcopy(c0)
c4 = c0.copy() #返回一个浅拷贝
c0[''] = 5
c0[''] = 1
c0[1].append(4)
print("c0",c0) #c0 {'1': 5, 1: [1, 2, 4], '4': 1}
print("c1",c1) #c1 {'1': 5, 1: [1, 2, 4], '4': 1}
print("c2",c2) #c2 {'1': 1, 1: [1, 2, 4]}
print("c3",c3) #c3 {'1': 1, 1: [1, 2]}
print("c4",c4) #c4 {'1': 1, 1: [1, 2, 4]}

参考:

https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

[python]字典的直接赋值、浅拷贝和深拷贝解析的更多相关文章

  1. 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    引用:https://www.jb51.net/article/142775.htm 列表赋值: 1 2 3 4 5 6 7 >>> a = [1, 2, 3] >>&g ...

  2. Python 引用、浅拷贝、深拷贝解析

    引用 Python是动态数据类型的语言,故在对变量进行赋值时是不用制定变量类型的. 或者说,你可以把变量赋值的过程,当作是贴一个标签,去引用该数据. 看下面的例子: In [54]: a=4 In [ ...

  3. Python中的对象引用、浅拷贝与深拷贝

    最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...

  4. Python(2.7.6) copy - 浅拷贝与深拷贝

    Python 标准库的 copy 模块提供了对象拷贝的功能. copy 模块中有两个函数 copy 和 deepcopy,分别支持浅拷贝与深拷贝. copy_demo.py import copy c ...

  5. copy(python中的引用,浅拷贝,深拷贝)

    #直接赋值 list = [1,2,['a','b'],'python'] #现将a等于list a = list print a [1,2,['a','b'],'python'] list.appe ...

  6. python里的引用、浅拷贝、深拷贝

    参考: 1.http://wsfdl.com/python/2013/08/16/%E7%90%86%E8%A7%A3Python%E7%9A%84%E6%B7%B1%E6%8B%B7%E8%B4%9 ...

  7. Python 字典的创建赋值和动态扩展

    >>> cleese={} >>> palin=dict() >>> type(cleese) <class 'dict'> > ...

  8. python浅拷贝与深拷贝

    今天写程序,人为制造了一个由浅拷贝引起的bug,有必要归纳一下.先附上源代码: class PerformanceTest(object): def __init__(self): ....... s ...

  9. 关于python中赋值、浅拷贝、深拷贝之间区别的深入分析

    当重新学习了计算机基础课程<数据结构和算法分析>后再来看这篇自己以前写的博文,发现错误百出.python内置数据类型之所以会有这些特性,归根结底是它采用的是传递内存地址的方式,而不是传递真 ...

随机推荐

  1. hdu 1325

    .,. 还是待整理 #include <stdio.h> const; typedef struct { int num,root,conn;//数据.根.入度 }Node; Node n ...

  2. Snort Inline IPS Mode

    Snort Inline IPS Mode https://forum.netgate.com/topic/143812/snort-package-4-0-inline-ips-mode-intro ...

  3. Project Oberon

    Project Oberon Project Oberon  http://www.projectoberon.com/ Project Oberon 28.11.2018 / 11.12.2018 ...

  4. 空a标签在IE下无效之解决方法

    过程就不分析了,只说解决方法: 1.给a标签添加样式:background:url(about:blank); 2.给a标签随便添加背景色或者背景图片,然后将a标签的透明度设置为0,不过在IE中需要使 ...

  5. RAII Theory && auto_ptr

    RAII(Resource Acquisition is Initialization),也称为"资源获取即初始化",是C++语言的一种管理资源,避免泄露的惯用法. C++标准保证 ...

  6. exp/imp 数据库数据导出/导入

    一.exp数据导出 1.导出全部数据 exp 用户名/密码@服务名 file=文件存储路径/xxx.dmp log=日志存储路径/xxx.log full=y 例: [oracle@dbservice ...

  7. 常用git指令记录

    Generating an SSH key Checking for existing SSH keys Generating a new SSH key and adding it to the s ...

  8. 《浏览器工作原理与实践》<09>块级作用域:var缺陷以及为什么要引入let和const?

    在前面我们已经讲解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是 JavaScript 的一个重要设计缺陷 ...

  9. Qemu: User mode emulation and Full system emulation

    转载: https://wiki.edubuntu.org/UbuntuDevelopment/Ports QEMU QEMU is a processor emulator and supports ...

  10. WebApplication 启动类一定要存于某个包下

    否则spring启动器 无法识别 包类目录