python浅拷贝深拷贝
2024-08-30 12:17:47
copy_list=list[:] 得到的是浅拷贝,即只能顶层拷贝,里面的嵌套不会复制一份。
a = [0, [1, 2], 3]
b = a[:]
a[0] = 8
a[1][1] = 9
请问现在a和b分别是多少?
答案:是 a 为 [8, [1, 9], 3],b 为 [0, [1, 9], 3]。 b的第二个元素也被改了。想不通看下面:
深拷贝方法如下:
import copy
a = [0, [1, 2], 3]
b = copy.deepcopy(a)
a[0] = 8
a[1][1] = 9
int,float,long,str,tuple为不可变对象
list,set,dict为可变对象
不可变对象指的是值的不可变,所以它的每一次操作都会重建对象
打个比方:
a=1
a=2
这里虽然看上去a的值可以改变,但其实是创建了一个新的对象2,然后将a的标签贴到这个2的对象上,原来那个1还在那里等待垃圾回收。
最新文章
- Spring8:一些常用的Spring Bean扩展接口
- struts-hibernate-ajax完成区县和街道级联下拉框功能
- [转]关于负margin在页面中布局的应用
- 菜鸟学Linux命令:find命令 查找文件
- dom 按着shift多选
- 《算法问题实战策略》-chaper8-动态规划法
- jquery easyui Accordion的使用
- javascript: 字符串拼接有问题
- 深入讲解HashMap原理
- 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解
- hibernate框架学习之数据查询(HQL)
- 单片机小白应该如何学习stm32的一些实践心得!
- Java多态(注意事项)
- FileInputStream与FileOutputStreawm实现文件的加密与解密
- LeetCode 5. Longest Palindromic Substring &; 回文字符串
- Leetcode: Repeated DNA Sequence
- yyy loves Easter_Egg I(恶心的字符串模拟)
- Python 3 操作json 文件
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记1——创建窗口&;GDI
- FZU 2087 统计树边【MST相关】