Python3 复制和深浅copy
赋值:
列表的赋值:
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的更多相关文章
- python基础(三)编码,深浅copy
编码,深浅copy encode,decode在python2中使用的一些迷糊,python3中更容易理解 要理解encode和decode,首先我们要明白编码,字符和二进制的相关概念,简单来说,计算 ...
- Python学习之路基础篇--07Python基础+编码、集合 和 深浅Copy
1 小数据池(节省内存) 只有数字和字符串中内存,储存在同一个内存地址中 数字的范围在-5~256中,字符串有以下两个特点:不能含有特殊字符,还有就s*20 不是同一个地址,而要*21就不是了 2 编 ...
- python 浅析格式化输出和深浅copy
一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s (其中s表示string)表示字符串 %d (其中d表 ...
- 数据结构中的列表、元组、字典、集合 ,深浅copy
数据结构:数据结构是计算机存储数据和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.在python中主要的数据类型统称为容器. 而序列(如列表.元组).映射(如字典).集合 ...
- python浅析格式化输出和深浅copy
一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s (其中s表示string)表示字符串 %d (其中d表 ...
- python基础3(元祖、字典、深浅copy、集合、文件处理)
本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要 ...
- python集合深浅copy
一,集合. 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...
- Objective-C基础之简析深浅copy
一.从面向对象到Objective-C概览copy 1.面向对象: In object-oriented programming, object copying is creating a copy ...
- day 07 数据类型,集合,深浅copy
1.day 06 内容回顾 小数据池 int :-5-256 str:特殊字符 ,*20 ascii:8位 1字节 表示一个字符 unicode:32位 4个字节 , 表示一个字符 字节表示8位表示一 ...
随机推荐
- 激活WIN10系统
打开cmd slmgr /ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T slmgr /skms kms.xspace.in slmgr /ato
- tomcat 启动脚本走过的坑
最近由于 程序写的问题 tomcat经常需要重启,所以就让我写给监控tomcat并启动的脚本 例: 看着一起正常 然后就写到 crontab 计划任务里了 后来发现不管用, 找了好多文档 就是找不到问 ...
- gridview ItemTemplate下绑定数据
<asp:TemplateField HeaderStyle-Width=" > <ItemTemplate> </ItemTemplate> </ ...
- 整理面试问题iOS
1.如何添加手势操作. 我们以在view上来举例 //创建一个view UIView *tapView=[UIView new]; tapView.frame=CGRectMake(, , kWidt ...
- H5入门须知
---恢复内容开始--- 首先,让我们来了解一下H5是做什么的,H5全称为“超文本标记语言”.是对网页进行编辑的技术.H5运用Hbulider进行网页编辑.网页可以分为三部分分别是title(主题)u ...
- 全志A33开发板Linux内核定时器编程
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 Linux 内核定时器是内核 ...
- GoStudy——解决vscode中golang插件依赖安装失败问题
vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示 Installing github.com/nsf/gocode ...
- terraform 配置github module source
terraform 支持多种module 的source 配置 以下是一个简单的使用github source的demo 测试项目 项目结构 ├── init.tpl ├── main.tf 代码 ...
- 关于动态内存malloc和realloc
1.malloc 1.申请的内存长度可以运行时决定,单位是字节 2.申请的内存为连续的内存空间 3.返回的地址可以根据实际需要强转成对应的类型 4.动态申请内存的生命周期是整个程序,除非手动 ...
- 打印 laravel 模型查询产品的 SQL
1.在路由閉包打印sql 打印一段代码生产的 sql 语句,使用路由闭包做个实验 Route::get('/get-sql', function() { DB::enableQueryLog(); $ ...