Python高级笔记(二) -- 深拷贝和浅拷贝

深拷贝与浅拷贝详解
本文深入探讨了深拷贝与浅拷贝的概念,包括不同类型数据结构下的拷贝行为,如元组、列表、字典等。解析了copy模块中copy.copy与copy.deepcopy函数在处理可变与不可变类型数据时的区别。

1. 深拷贝

1.1 类型1

 

注意: d没有改变, 因为d所拷贝的数据没有改变, 而是c往后添加数据。

1.2 类型2: 元组

如果copy.copy拷贝的是元组是深拷贝! 不会进行浅拷贝, 仅仅是指向, 因为元组是不可变类型, 因此用copy.copy的时候会自动判断.

2. 浅拷贝

2.1 类型1

2.2 类型2

  • 如果 用copy.copy, copy.deepcopy对一个全部是不可变类型的数据进行拷贝, 那么他们结果相同, 都是引用指向

  • 如果 拷贝的一个拥有 可变类型的数据, 即使元组是最顶层, 那么 deepcopy依然是 深拷贝, 而 copy.copy还是指向.

2.3 类型3: 切片是浅拷贝

2.4 类型4: 字典是浅拷贝

  • 字典无序, 每一个key都通过哈希来得到

  • 他们的value的值并不在字典里存放, 而是存放着引用 !

 

2.5 类型5: 函数的形参是列表(浅拷贝)

如果参数传入的是deepcopy, 则产生的是深拷贝, 列表里不会对参数产生修改

 

转载于:https://www.cnblogs.com/douzujun/p/10770922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值