赋值:

列表的赋值:

  list1 = ['peter','sam']
list2 = list1 print(list1,id(list1))
print(list2,id(list2))
list1.append('hery')
print(list1,id(list1))
print(list2,id(list2)) ['peter', 'sam'] 5071496
['peter', 'sam'] 5071496
['peter', 'sam', 'hery'] 5071496
['peter', 'sam', 'hery'] 5071496

字典的赋值:

 dic = {'name':'just'}
dic1 = dic print(dic,id(dic))
print(dic1,id(dic1)) dic['age'] = 27 print(dic,id(dic))
print(dic1,id(dic1)) {'name': 'just'} 38505064
{'name': 'just'} 38505064
{'name': 'just', 'age': 27} 38505064
{'name': 'just', 'age': 27} 38505064

字符串赋值:

 str = 'hello'
str1 = str print(str,id(str))
print(str1,id(str1)) str = str.replace('e','E') print(str,id(str))
print(str1,id(str1)) hello 35026176
hello 35026176
hEllo 39638608
hello 35026176

创建两个相同的变量,他们的内存地址相同(以前版本好像是不同)

 str = 'h'
str3 = 'h' print(str,id(str))
print(str3,id(str3))
print( str is str3) h 39056528
h 39056528
True

浅copy:

浅copy来说,第一层创建的是新的内存地址。而从第二层开始,指向的是同一个内存地址,所有,对于第二层以及更深的层数来说,保持一致性。
 just = ['eric','bob',34,'ida']
dep = ['helo','welcome','jams']
jesp = just.copy() print(just,id(just))
print(jesp,id(jesp)) ['eric', 'bob', 34, 'ida'] 37435528
['eric', 'bob', 34, 'ida'] 37497480
 just = ['eric','bob',34,'ida']
dep = ['helo','welcome','jams']
just.append(dep)
jesp = just.copy()
just[1] = 'tom'
jesp[4][0] = 'hi' print(just,id(just))
print(jesp,id(jesp)) ['eric', 'tom', 34, 'ida', ['hi', 'welcome', 'jams']] 42744008
['eric', 'bob', 34, 'ida', ['hi', 'welcome', 'jams']] 43021128

深copy:

对深copy来说,两个是完全独立的,改变任意一个元素(无论是多少层),另一个不会随着改变。

 import copy
just = ['eric','bob',34,'ida']
dep = ['helo','welcome','jams']
just.append(dep)
jesp = copy.deepcopy(just)
just[1] = 'tom'
jesp[4][0] = 'hi' print(just,id(just))
print(jesp,id(jesp)) ['eric', 'tom', 34, 'ida', ['helo', 'welcome', 'jams']] 43071752
['eric', 'bob', 34, 'ida', ['hi', 'welcome', 'jams']] 43348872

Python3 复制和深浅copy的更多相关文章

  1. python基础(三)编码,深浅copy

    编码,深浅copy encode,decode在python2中使用的一些迷糊,python3中更容易理解 要理解encode和decode,首先我们要明白编码,字符和二进制的相关概念,简单来说,计算 ...

  2. Python学习之路基础篇--07Python基础+编码、集合 和 深浅Copy

    1 小数据池(节省内存) 只有数字和字符串中内存,储存在同一个内存地址中 数字的范围在-5~256中,字符串有以下两个特点:不能含有特殊字符,还有就s*20 不是同一个地址,而要*21就不是了 2 编 ...

  3. python 浅析格式化输出和深浅copy

    一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s  (其中s表示string)表示字符串 %d  (其中d表 ...

  4. 数据结构中的列表、元组、字典、集合 ,深浅copy

    数据结构:数据结构是计算机存储数据和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.在python中主要的数据类型统称为容器. 而序列(如列表.元组).映射(如字典).集合 ...

  5. python浅析格式化输出和深浅copy

    一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s  (其中s表示string)表示字符串 %d  (其中d表 ...

  6. python基础3(元祖、字典、深浅copy、集合、文件处理)

    本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要 ...

  7. python集合深浅copy

    一,集合. 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...

  8. Objective-C基础之简析深浅copy

    一.从面向对象到Objective-C概览copy 1.面向对象: In object-oriented programming, object copying is creating a copy ...

  9. day 07 数据类型,集合,深浅copy

    1.day 06 内容回顾 小数据池 int :-5-256 str:特殊字符 ,*20 ascii:8位 1字节 表示一个字符 unicode:32位 4个字节 , 表示一个字符 字节表示8位表示一 ...

随机推荐

  1. MyEclipse 启动慢,优化

    找到安装目录,修改myeclipse.ini 文件: -Xms2048m -Xmx8192m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=256m

  2. git 本地重命名文件夹大小写并提交到远程分支

    git branch 查看本地分支 git branch -a 查看本地 本地分支可直接切换:git checkout name 进入正题: 1.文件夹备份 2.git config core.ign ...

  3. linux (centOS)安装 oracle 11g 以及卸载oracle

    目录 首先.1. 一.参数以及环境配置 1.创建用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.修改linux内核,修改/etc/sysctl.conf文件 ...

  4. Spring3(一) 控制反转(IoC)和依赖注入(DI)

    几个常用框架之间的关系 1       spring框架概述 1.1   什么是spring Spring是一个开源.轻量级的Java 开发框架.框架的主要优势之一就是其分层架构,分层架构允许使用者选 ...

  5. Ubuntu下math库函数编译时未定义问题的解决

    自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢? 后来上网查了下,发现是 ...

  6. fixed 相对于父容器定位

    当一个元素设置为 fixed 或 absolute,不设置 top, left 则会在原位置,而脱离文档流,别的元素可以存在于它之后. 而当使用 fixed 后还想相对于父容器进行定位,或者说在当前位 ...

  7. [转]c++访问python3-实例化类的方法

    转自: http://blog.csdn.net/love_clc/article/details/76653100 此文是学习笔记,供日后翻阅.下面列出C++访问python所需的函数,按调用的先后 ...

  8. 域名到站点的负载均衡技术一览(主要是探讨一台Nginx抵御大并发的解决方案)(转)https://www.cnblogs.com/EasonJim/p/7823410.html

    一.问题域 Nginx.LVS.Keepalived.F5.DNS轮询,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器,扩充系统的性能 ...

  9. LiveBindings如何绑定一个对象(转)

    原文 http://www.malcolmgroves.com/blog/?p=1084 一.新建VCL工程加入TAdapterBingSource控件 二.定一个TPerson类 MyPerson ...

  10. Java多态(非常重要)

    多态(多种形态)的定义 同一消息对不同类的对象做出的不同响应 种类 在程序设计中一般说多态都是运行时多态 多态施行的条件: 1满足继承关系 2父类引用指向子类对象(向上转型) 向上转型 向下转型(子类 ...