copy&deepcopy
import copy 字典参照列表结论,看是否有深层嵌套。 a = {'name':1,'age':2} b = a a['name'] = 'ff' print(a) print(b) print(id(a),id(b)) a = {'name':1,'age':2} b = copy.deepcopy(a) a['name'] = 'ff' print(a) print(b) print(id(a),id(b)) """ {'name': 'ff', 'age': 2} {'name': 'ff', 'age': 2} 4301093048 4301093048 {'name': 'ff', 'age': 2} {'name': 1, 'age': 2} 4301093120 4302783256 """ 字符串和元组等不可变数据类型,打死都不变 a = 'ff' b = a a = 'ff1' print(a,b) # ff1 ff a = 'ff' b = copy.copy(a) a = 'ff1' print(a,b) # ff1 ff a = 'ff' b = copy.deepcopy(a) a = 'ff1' print(a,b) # ff1 ff a = [1,2,3] b = [4,5,6] c = [a,b] d = c print(id(c),id(d)) # 4322641352 4322641352 c.append(9) print(c) # [[1, 2, 3], [4, 5, 6], 9] print(d) # [[1, 2, 3], [4, 5, 6], 9] print(id(c),id(d)) # 4322641352 4322641352 d = copy.copy(c) c.append(9) print(c) # [[1, 2, 3], [4, 5, 6], 9] print(d) # [[1, 2, 3], [4, 5, 6]] c[0].append(8) print(c) # [[1, 2, 3, 8], [4, 5, 6]] print(d) # [[1, 2, 3, 8], [4, 5, 6]] 如果只是copy的话,copy.copy() 针对外层依旧是深拷贝,但对内层来讲就是浅拷贝了,会改变值。 d = copy.deepcopy(c) c.append(9) print(c) # [[1, 2, 3], [4, 5, 6], 9] print(d) # [[1, 2, 3], [4, 5, 6]] c[0].append(8) print(c) # [[1, 2, 3, 8], [4, 5, 6]] print(d) # [[1, 2, 3], [4, 5, 6]] 深拷贝, 不管你是啥,只要copy.deepcopy()了。 不管你变不变,我变我是狗。
copy&deepcopy
copy&deepcopy的更多相关文章
- Python面试题之copy/deepcopy详解
copy和deepcopy有什么区别? http://blog.csdn.net/qq_32907349/article/details/52190796 http://iaman.actor/blo ...
- copy.copy()与copy.deepcopy()的详解
copy.copy() 元组和列表调用这个方法效果也不一样. 元组的效果: a = [1,2,3] b = [4,5,6] c = (a,b) e = copy.copy(c) 可以看到:e和c是指向 ...
- Python 浅拷贝copy()与深拷贝copy.deepcopy()
首先我在这介绍两个新的小知识,要在下面用到.一个是函数 id() ,另一个是运算符 is.id() 函数就是返回对象的内存地址:is 是比较两个变量的对象引用是否指向同一个对象,在这里请不要和 == ...
- python中的copy.copy和copy.deepcopy
一个例子就搞清楚 import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 ...
- Python 函数参数引用(传值/传址)/copy/deepcopy
精简版: 传值:被调函数局部变量改变不会影响主调函数局部变量 传址:被调函数局部变量改变会影响主调函数局部变量 Python参数传递方式:传递对象引用(传值和传址的混合方式),如果是数字,字符串,元组 ...
- Python 传值和传址 copy/deepcopy
传值:被调函数局部变量改变不会影响主调函数局部变量 传址:被调函数局部变量改变会影响主调函数局部变量 Python参数传递方式:传递对象引用(传值和传址的混合方式),如果是数字,字符串,元组则传值:如 ...
- copy deepcopy辨析
copy deepcopy讲的是复制源对象的改变对copy出来的对象的影响: 我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在. 所以改变原有被复制对象不会对已经复制 ...
- copy & deepcopy
1 import copy 2 3 字典参照列表结论,看是否有深层嵌套. 4 a = {'name':1,'age':2} 5 b = a 6 a['name'] = 'ff' 7 print(a) ...
- [Python] 等号赋值, copy, deepcopy的区别
参考链接: 1. 介绍python中的可变类型与不可变类型:https://blog.csdn.net/answer3lin/article/details/86430074 (也可以参考转载博客 P ...
随机推荐
- Codeforces Round #436 (Div. 2)
http://codeforces.com/contest/864 第一次打cf的月赛-- A 题意:给你一个数列,问你能不能保证里面只有两种数且个数相等.2<=n<=100,1<= ...
- MATLAB中最基本函数plot()的用法
1二维平面图形 1.1基本图形函数 画出一条正弦曲线和一条余弦曲线 1.1.1绘图参数表 y 黄- 实线. 点< 小于号 m 紫: 点线o 圆s 正方形 c 青-. 点划线x 叉号d 菱形 r ...
- 基于Accord.Audio和百度语言识别
---恢复内容开始--- 目标需求 使用录音形式,模拟微信语音聊天.按住录音,松开发送语音,并完成语音识别. ps:百度的语言识别有60秒长度限制,需要自己做好控制. 实现方案 采用C# winfor ...
- 编码中的setCharacterEncoding 理解<转自-fancychendong>
1.pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码. 2.contentType="text/html;charset=UTF ...
- 被动式Telnet研究及实现(解决内外网远程维护的困难)-part A
欢迎转载.转载请保留原文链接:http://blog.csdn.net/mikulee/article/details/40149779 项目背景及需求: 近期公司有一个项目: 我们在一个arm主机上 ...
- 腾讯Web工程师的前端书单
2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指 ...
- 使用javascript正则表达式实现遍历html字符串
最近在尝试实现一个js模板引擎,其中涉及到使用js解析html字符串的功能.由于我实现的这个模板不止是要能替换参数输出html字符串,还要可以解析出每个dom元素的名称及参数啥的. 网上找到了一个叫做 ...
- 关于MySql中使用IFNULL()函数失效的问题。
今天在学习时,碰到一个问题:在联表查询取得结果后,如果取得的结果是空值,则给一个默认值,如果不是空值,则返回这个值. 下面我们来看看业务场景: 在menu表中: 存储的是前端页面的菜单配置,注意成员权 ...
- 查看和删除chrome浏览器缓存内容
平时用chrome开发更多,介绍一下如何清除和查看chrome浏览器的缓存内容,其他浏览器大同小异就不细说了 打开设置==>隐私设置和安全性==>内容设置==>cookie ==&g ...
- idea和Webstorm上使用git和github,码云
由于之前一直使用svn,现在项目使用git,顾根据网上找的学习资料,自己梳理了下,收获蛮多,这里做个记录,如果能帮助到您那是最好不过的. 1.大致步骤 使用工具:idea,github,码云 webs ...