深浅拷贝

一、数字和字符串

对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import copy
# ######### 数字、字符串 #########
n1 = 123
# n1 = "i am alex age 10"
print(id(n1))
# ## 赋值 ##
n2 = n1
print(id(n2))
# ## 浅拷贝 ##
n2 = copy.copy(n1)
print(id(n2))
  
# ## 深拷贝 ##
n3 = copy.deepcopy(n1)
print(id(n3))

二、其他基本数据类型

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

1、赋值

赋值,只是创建一个变量,该变量指向原来内存地址,如:

1
2
3
n1 = {"k1""wu""k2"123"k3": ["alex"456]}
  
n2 = n1

  

2、浅拷贝

浅拷贝,在内存中只额外创建第一层数据

1
2
3
4
5
import copy
  
n1 = {"k1""wu""k2"123"k3": ["alex"456]}
  
n3 = copy.copy(n1)

3、深拷贝

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

1
2
3
4
5
import copy
  
n1 = {"k1""wu""k2"123"k3": ["alex"456]}
  
n4 = copy.deepcopy(n1)

最新文章

  1. 飞流直下的精彩 -- 淘宝UWP中瀑布流列表的实现
  2. Android Studio快捷键每日一练(6)
  3. 加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: Section 3 One-sample and two-sample tests
  4. PPT制作教程:如何制作ppt
  5. HDU 3998 Sequence (最长上升子序列+最大流)
  6. Myeclipse集成Jboss 6.1控制台不输出日志信息
  7. TortoiseSVN 更新时忽略指定文件夹
  8. CentOS设置服务开机启动的方法
  9. Mysql auto_increment 重新计数(让id从1开始)
  10. USACO Barn Repair 【贪心算法】
  11. 对dump脱壳的一点思考
  12. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
  13. hdu 5078 Osu! (2014 acm 亚洲区域赛鞍山 I)
  14. 浅析微信小程序技术架构(原创)
  15. 含有Date属性的对象转化为Json
  16. MySQL配置文件优化(Innodb)
  17. C# 添加动态属性
  18. windows的磁盘操作之九——区分本地磁盘与移动硬盘
  19. oracle日期合并 分别用逗号或者分号隔开
  20. ZSTU4270 同源数 2017-03-22 14:34 82人阅读 评论(0) 收藏

热门文章

  1. <每日一题>题目24:冒泡排序
  2. 主从复制系列A
  3. vue.js_01_vue.js的入门
  4. Nodejs Express目录结构
  5. JDK中有关23个经典设计模式的示例
  6. spring cloud深入学习(十二)-----Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
  7. nginx 访问ssl 的 pem 遇到的权限问题
  8. 【DM8168学习笔记3】CodSourcery GCC Tool Chain安装过程记录
  9. dom4j和document
  10. java基础之自定义单链表练习