python中深浅拷贝的简单讲解(附代码)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于python中深浅拷贝的简单讲解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

复习一下,深浅拷贝。

上代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# -*- coding: utf-8 -*-

"""

Created on Thu Sep 20 14:18:48 2018

 

@author: Lenovo

"""

 

import copy,json

 

a={"ab":1,"cd":{"ef":2},"gh":[1,2,3]}

print "a1:",a

 

b=dict(a["cd"])

c=copy.copy(a)

d=copy.deepcopy(a)

e=a["cd"]

a["cd"]["xy"]=3

a["fx"]=5

a["cd"]["ef"]=20

print "a2:",a

print "b :",b

print "c :",c

print "d :",d

print "e :",e

结果:

1

2

3

4

5

6

a1: {'gh': [1, 2, 3], 'ab': 1, 'cd': {'ef': 2}}

a2: {'gh': [1, 2, 3], 'fx': 5, 'ab': 1, 'cd': {'xy': 3, 'ef': 20}}

b : {'ef': 2}

c : {'cd': {'xy': 3, 'ef': 20}, 'ab': 1, 'gh': [1, 2, 3]}

d : {'cd': {'ef': 2}, 'ab': 1, 'gh': [1, 2, 3]}

e : {'xy': 3, 'ef': 20}

从结果可以看出:

dict()命令创建了一个新的字典;

"="赋值 相当于使用了“引用”概念;

copy.copy是浅拷贝,对拷贝的信息进行修改则会相应修改,新增或对其他未拷贝的信息修改,浅拷贝对象是不会有修改;

例如c拷贝的范围是"gh","ab","cd"三个key,若对这三个key的value修改,拷贝后对象会相应修改,但是对其他信息修改,如增加key"fx",拷贝后的对象不会修改。

copy.deepcopy是深拷贝,创建全新的对象。

以上就是python中深浅拷贝的简单讲解(附代码)的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python是什么情况下诞生的

Python语法基础详解

使用Python2完成led显示大数字的效果实例

Python时间戳是什么

Python中insert用法是什么

Python中用什么代替switch

Python脚本如何将excel文件转为csv文件(代码)

Python中如何安装threading

django中static_root和static_url及staticfiles_dirs浅析

Python中迭代器生成器的实例详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...