番外:深浅copy
进击のpython
*****
深浅copy
copy是什么意思?
复制 (又学一个单词!开不开森)
那啥叫复制呢?
百度百科上给的解释是:仿原样品制造
我们曾经有过这样的印象
a = "zhangsan"
b = a
a = "jack"
print(a, b) # jack zhangsan
这样就相当于用 b 复制了 一遍 a 对吧!
那你在网上down文章的时候,作者把文章删除了
你的电脑里就没了吗?
要是没了?那我存在硬盘里的女神学习资料岂不是保存不住了?
所以我用b复制一份之后,a就算变了。也跟我b没得关系
但是我们还发现过这样的情况
a = [1, 2, 3, [1, 2, 3]]
b = a
a[-1][1] = "jack"
print(a, b) # [1, 2, 3, [1, 'jack', 3]] [1, 2, 3, [1, 'jack', 3]]
不对啊!!!!!
这和刚开始说的不一样啊!!!!
a变了b怎么也变了???????

当我们操作字符串的时候,就相当于在内存地址(黄色框)里开辟一个空间,里面存afwaf,并把它叫做 a
然后当 b=a 时看似是 红色的b指向a 实际上是 绿色的b指向afwaf
然后当 a = af 的时候,又开辟一个空间,里面存 af 并把它叫做 a
不能有两个一样的变量名(讲变量的时候讲过了)
所以 a 指向 afwaf 的红色线就断了
所以现在
a 就是 af b就是 afwaf
而当我们操作可变的数据类型,比如列表,字典等,就是这样的

当我对列表进行修改的时候,就不再开辟新的内存空间
而是!共!享!内!存!空!间!
这样,a 和 b 就是始终相等的
给你一张偷来的图
可以看到 copy 的 只是第一层的内存地址,但是第二层,还是共享内存空间的!
所以,只改变第一层,就不会共享,各改各的
但是改到第二层,就会共享,你动我也动!
深copy 就一句话
你动你的,跟我没关系
所以我下载的女神学习资料用的就是深copy这个形式
*有点别扭*
*多做习题*
番外:深浅copy的更多相关文章
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 可视化(番外篇)——SWT总结
本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可 ...
- [置顶] think in java interview番外篇-谈程序员如何修练英语
一.程序员对英语能力的重视度和能力要求应该是在各行各业中排在比较靠前的 这样说吧,英语程度的好坏直接影响着一个程序员的编程.开发.创新能力. 道理很简单: 1. 计算机和软件是用英语创造出来的 2. ...
- Python 基础之函数、深浅copy,set及练习
三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(not)的条件判断,在Python 2.4以上才有了三元操作. 语法格式: X if C else Y 有了三元表达式 ...
- silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发) 这篇介绍的是3D导航,点击图标,页面360°翻转的效果!有什么不足的欢迎大家指出来. 1.新建一个user ...
- 同步IO与一部IO、IO多路复用(番外篇)select、poll、epoll三者的区别;blocking和non-blocking的区别 synchronous IO和asynchronous IO的区别
Python之路,Day9 , IO多路复用(番外篇) 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- iOS冰与火之歌(番外篇) - 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权
iOS冰与火之歌(番外篇) 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权 蒸米@阿里移动安全 0x00 序 这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用 ...
- python基础3(元祖、字典、深浅copy、集合、文件处理)
本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要 ...
随机推荐
- 把BitmapSource图片数据保存到文件
实现函数: /// <summary> /// 保存图片到文件 /// </summary> /// <param name="image">图 ...
- C# 获取当前月份天数的三种方法总结
方法一: //最有含量的一种 int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInM ...
- Ubuntu Linux服务器搭建SSL/TLS(https)(在StartSSL可以得到免费证书)
目录 1 生成公钥和私钥对 2 公钥提交到CA机构签发一个crt证书 3 配置证书链 4 在Apache里开启SSL支持并配置crt证书和私钥 5 配置HSTS (可选) 6 总结 首先SSL/TLS ...
- 自己总结OpenSSL的变化
经过查看openssl源码自带的Makefile,发现: 1) 从0.9.7开始 https://www.openssl.org/source/old/0.9.x/openssl-0.9.7k.tar ...
- linux+php+swoole解决方案
服务器接收巨量的并发我使用linux+php+swoole解决方案.简单快速高效 并发量大 稳定 http://www.swoole.com/
- QT---Native Wifi functions 应用(WiFi有密码连接)
实现功能 无线网卡列表 无线热点扫面 无线连接(有密码,配置文件连接方式) 无线断开 重命名本地无线名(两种方式) 删除无线配置文件 开启和关闭 ...
- PNG透明窗体全攻略(控件不透明)
http://blog.csdn.net/riklin/article/details/4417247 看好了,这是XP系统,未装.net.我的Photoshop学的不太好,把玻璃片弄的太透了些,如果 ...
- 去除文件属性(使用SetFileAttributes API函数)
FILE_ATTRIBUTE_ARCHIVE 文件存档(备份或移动时会对文件做标记).FILE_ATTRIBUTE_ENCRYPTED 加密(对文件来说是内容加密,对目录来说是对将来新建的文件默认为加 ...
- 关于Android开发四大组件
文章主要是讲Android开发的四大组件,本文主要分为 文章源自:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html 一.Act ...
- linux如何直接运行python文件
1.首先创建好py文件 touch GetCiscoCpu.py 2. 编写GetCiscoCpu.py vi GetCiscoCpu.py /********************** *本文是用 ...