Python 字典 copy()方法
描述
Python 字典 copy() 方法返回一个字典的浅拷贝(父不变,子变)。
语法
copy() 方法语法:
D.copy()
参数
- 无。
返回值
返回一个字典的浅拷贝(父不变,子变)。
实例
以下实例展示了 copy() 方法的使用方法:
#!/usr/bin/python3
D1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
D2 = D1.copy()
print ("新复制的字典为 : ",D2)
以上实例输出结果为:
新复制的字典为 : {'Age': 7, 'Name': 'Runoob', 'Class': 'First'}
直接引用、浅拷贝、深拷贝的区别
可以通过以下实例说明:
# !/usr/bin/python
# -*- coding: UTF-8 -*- import copy D1 = {'user': 'runoob', 'num': [1, 2, 3]} # 原始数据
D2 = D1 # 直接引用:D2和D1整体指向同一对象。
D3 = D1.copy() # 浅拷贝:D3和D1的父对象是一个独立的对象,但是他们的子对象还是指向同一对象。
D4 = copy.deepcopy(D1) # 深拷贝:D4和D1的整体是一个独立的对象。 D1['user'] = 'root' # 修改父对象D1
D1['num'].remove(1) # 修改父对象D1中的[1, 2, 3]列表子对象 print('原始数据:',{'user': 'runoob', 'num': [1, 2, 3]}) # 原始数据
print('改后数据:',D1) # 父子都修改过的
print('直接引用:',D2) # 父子都变(直接引用)
print('浅拷贝:',D3) # 父不变,子变(浅拷贝)
print('深拷贝:',D4) # 父子都不变(深拷贝)
实例中 D2 其实是 D1 的赋值引用(别名),所以输出结果都是一致的;D3 是对D1的浅拷贝,父对象不会随D1修改而修改,子对象随D1的修改而修改;D4 是对D1的深拷贝,父对象和子对象都不会随D1修改而修改。
输出结果如下:
原始数据: {'user': 'runoob', 'num': [1, 2, 3]}
改后数据: {'user': 'root', 'num': [2, 3]}
赋值引用: {'user': 'root', 'num': [2, 3]}
浅拷贝: {'user': 'runoob', 'num': [2, 3]}
深拷贝: {'user': 'runoob', 'num': [1, 2, 3]}
知识扩展
Python 字典 copy()方法的更多相关文章
- python字典copy()方法
python 字典的copy()方法表面看就是深copy啊,明显独立 d = {'a':1, 'b':2} c = d.copy() print('d=%s c=%s' % (d, c)) Code1 ...
- Python 字典 fromkeys()方法
Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None. fromkeys() 方法语法: 1 dict.f ...
- Python 字典 popitem() 方法
描述 Python 字典 popitem() 方法随机返回并删除字典中的一个键/值对(一般删除末尾对). 如果字典已经为空,却调用了此方法,就报出KeyError异常. 语法 popitem() 方法 ...
- Python 字典 pop() 方法
描述 Python 字典 pop() 方法删除给定键所对应的键/值对,并返回被删除的值.给定键如果不在字典中,则必须设置一个default值,否则会报错,此时返回的就是default值. 语法 pop ...
- Python 字典 values() 方法
描述 Python 字典 values() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有值. 语法 values() 方法语法: D.values() 参数 无 ...
- Python 字典 update() 方法
描述 Python 字典 update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中. 用法与 Python dict() 函数相似. 语法 update ...
- Python 字典 keys() 方法
描述 Python 字典 keys() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有的键. 语法 keys() 方法语法: D.keys() 参数 无. 返回值 ...
- Python 字典 items() 方法
描述 Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组. 语法 items() 方法语法: D.items() ...
- Python 字典 clear()方法
描述 Python 字典 clear() 方法用于删除字典内所有元素. 语法 clear() 方法语法: D.clear() 参数 无. 返回值 该方法没有任何返回值. 实例 以下实例展示了 clea ...
随机推荐
- Java基础(十四):泛型
一.Java 泛型: Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就 ...
- liunx step by step(3)
由于我的ubuntu是装载在virtualbox的虚拟机中,怎么实现其中的数据的共享,显得非常的必要:额,具体这么办. 1.安装增强功能.挂载光盘. 打开其相应的终端:fantlam@fantlam- ...
- Windows10下安装pytorch并导入pycharm
1.安装Anaconda 下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 安装Anaconda3,最新版本的就可以了,我安装的是5. ...
- 转: 网卡名字eth0,eth1的修改方法
转自:http://longwind.blog.51cto.com/419072/982738 我使用这个方法生效: 现象:只有eth2, vi /etc/udev/rules.d/70-per ...
- 【C/C++】:用C实现输出日期的阴历日子
前言 输出阴历一直是个老大难的问题.由于阴历日子没有规律.所以这里须要做的就是通过打表的算法做到输出阴历日子,可是非常多人都不太了解原理,我这里就给大家送上了一个福利.把自己做好的基于打表的阴历的日子 ...
- The jQuery HTML5 Audio / Video Library (jQuery jPlayer插件给你的站点增加视频和音频功能)
http://jplayer.org/ The jQuery HTML5 Audio / Video Library jPlayer is the completely free and open s ...
- Install-DedupCore.component 的内容
[amd64_microsoft-windows-dedup-common_31bf3856ad364e35_6.3.9600.16384_none_24924b7b049f1064] CF=0000 ...
- Android的startActivityForResult不起作用
之前startActivityForResult一直用的好好的,今天发现怎么也不起作用.检查后发现有两点影响了. 1.android:launchMode="singleTask" ...
- python中in在list和dict中查找效率比较
转载自:http://blog.csdn.net/wzgbm/article/details/54691615 首先给一个简单的例子,测测list和dict查找的时间: ,-,-,-,-,,,,,,] ...
- 基于jquery ui修改的不依赖第三方的背景透明的弹出div
效果图: 代码: <!doctype html> <html> <head> <meta charset="utf-8"> < ...