1. is ==

总结

  • is 是比较两个引用是否指向了同一个对象(引用比较)。
  • == 是比较两个对象是否相等。
In [1]: a = [11,22,33]

In [2]: b = [11,22,33]

In [3]: a == b
Out[3]: True In [4]: a is b
Out[4]: False In [5]: id(a)
Out[5]: 140715444902984 In [6]: id(b)
Out[6]: 140715444891912
In [7]: a
Out[7]: [11, 22, 33] In [8]: b
Out[8]: [11, 22, 33] In [9]: c = a In [10]: c
Out[10]: [11, 22, 33] In [11]: id(a)
Out[11]: 140715444902984 In [12]: id(b)
Out[12]: 140715444891912 In [13]: id(c)
Out[13]: 140715444902984
### 特殊情况

In [14]: a = 10

In [15]: b = 10

In [16]: a == b
Out[16]: True In [17]: a is b
Out[17]: True In [18]: a = 10000 In [19]: b = 10000 In [20]: a is b
Out[20]: False

2.深copy 浅copy

  • 深拷贝是对于一个对象所有层次的拷贝(递归)
  • 浅拷贝是对于一个对象的顶层拷贝
  • 通俗的理解是:拷贝了引用,并没有拷贝内容

    

    

In [33]: a.append(55)

In [34]: a
Out[34]: [11, 22, 33, 55] In [35]: b
Out[35]: [11, 22, 33, 55] In [36]: c
Out[36]: [11, 22, 33]

3.import copy 不同

  1)copy.deepcopy()  一直递归,拷到最底层

  深copy:其实就是重新开辟不同内存,保存和原来的相同信息!和原来的信息,内存没有关系

  2)copy.copy()       浅拷贝对不可变类型和可变类型的copy不同

    对于可变类型,只是copy第一层

    

    对于不可变类型元组,不copy

    

2 引用 深copy 浅copy的更多相关文章

  1. 深、浅copy

    深.浅copy多用于列表 浅copy:第一层中不变的数据是独立的,可变类型元素指向同一块内存地址 l1 = [1,2,3,["a","b"]] l2 = l1. ...

  2. python学习笔记-(六)深copy&浅copy

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用. 1. 赋值 赋值其实只是传递对象引用,引用对象 ...

  3. python基础之赋值/深copy/浅copy

    首先,不管是赋值还是深浅copy,都是针对那些可能会产生变化的值进行区分的,也就是对于数字,字符串来说,区分赋值,深浅copy是毫无意义的. 那么,让我们来对那些可变的像list set dict t ...

  4. 【Python初学】深copy&浅copy

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用. 1. copy.copy 浅拷贝 只拷贝父对象 ...

  5. 浅copy 与 深copy

    import copy names = ["zhangyang", 'guyun', 'xiangpeng', ['jack','tom'], 'xuliangchen'] nam ...

  6. Day 7 深copy和浅Copy

    dict.fromkeys的用法 1 2 3 4 5 6 7 8 9 10 11 #dict.fromkeys的用法 #例子1 dic = dict.fromkeys([1,2,3],[]) prin ...

  7. 深浅COPY浅谈

    通俗地谈一下深浅COPY的区别,顺便做个笔记.(纯手打,如有不对之处还望大牛指导改正.) 个人觉得区分这个概念需要从数据类型来切入: 1.如果“被复制对象”(后面简称“原对象”)的数据类型为不可变数据 ...

  8. retain copy(浅复制) mutablecopy (深复制)

    http://blog.csdn.net/xdrt81y/article/details/24331103   口诀: 1浅3深   NSArray copy (浅) 返回NSArray NSArra ...

  9. (五)聊一聊深Copy与浅Copy

    一.关于浅copy与深copy 首先说明一下: 在python中,赋值其实就是对象的引用,变量就是对象的一个标签,如果把内存对象比喻成一个个房间,那么变量就是门牌号. 深copy与浅copy只是针对可 ...

随机推荐

  1. stl sort使用不当造成崩溃

    #include <iostream>#include <vector>#include <algorithm>using namespace std; bool ...

  2. Pollard_rho 因数分解

    Int64以内Rabin-Miller强伪素数测试和Pollard 因数分解的算法实现 选取随机数\(a\) 随机数\(b\),检查\(gcd(a - b, n)\)是否大于1,若大于1则\(a - ...

  3. [USACO5.2]Snail Trails

    嘟嘟嘟 一道很水的爆搜题,然后我调了近40分钟…… 错误:输入数据最好用cin,因为数字可能不止一位,所以用scanf后,单纯的c[0]为字母,c[1]数字………………………… #include< ...

  4. CI框架源码研读(整体架构)

    有人说phper的深入要从研读mvc框架开始,我跳了一个常用的CI框架入手,主要是因为 CI框架简单轻巧,可以自己DIY功能!!! 1.首先来看CI的整体架构图: 其中:application是用户级 ...

  5. 文件上传之FileItem使用

    一.介绍 FileItem类的常用方法: 1.boolean isFormField().isFormField方法用来判断FileItem对象里面封装的数据是一个普通文本表单字段(true),还是一 ...

  6. js 构造函数创建钟表

    翻出来之前的一些效果,觉得这个时钟还挺好玩的就写出来共大家分享: HTML代码如下: <div id="box"> </div> 当前盒子用于插入钟表内容: ...

  7. Java IP白名单相关工具类

    关于设置IP白名单相关的一些方法,整理,记录了一下. package com.tools.iptool; import java.util.ArrayList; import java.util.Ha ...

  8. direct path write 等待事件导致数据库hang

    同事反应十几分钟前数据库好像挂起了一会,让我排查数据库是否存在什么问题. 第一反应看当前数据库还是否有什么等待事件,结果有direct path write等待事件. 于是抓了问题时间段20分钟的AS ...

  9. 记一次简单的UITableView卡顿优化

    先说需求,要做一个类似这种的列表 标签控件直接用的第三方 YZTagList 不知道的可以去搜一下,当这不重要. 重要的是这个控件加载数据的时候非常影响列表滑动效果,造成卡顿,尤其是列表行数如果更多的 ...

  10. Spring知识点小结汇总

    Spring部分 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控 ...