本文摘自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中预处理以及热图的简单介绍
Python如何通过列表中字典的值对列表进行排序
Python中numpy是什么
Python之禅怎么打出来
Python中的匿名函数是什么?语法及实例解析
Python多线程的优点是什么?六大优点助你了解多线程
Python代码的打包与发布
excel文件读取的两种方式
Python中关于json与pickle简单介绍
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python中深浅拷贝的简单讲解(附代码)