Python 字典 copy()
函数用于复制字典,它返回的是字典的浅复制,因此当修改原字典的时候,复制的副本不好随之修改,而使用 =
符号复制的是会随之改变的。
语法
语法如下:dict.copy()
参数
没有参数。
返回值
返回字典的浅复制。
程序示例
介绍一些例子,了解set.copy()
函数的使用方法。
例1
#!/usr/bin/python
# coding=utf-8
dic = {1:"One", 2: "Two", 3:"Three"}
copy = dic.copy()
print('修改前:', copy)
dic[1] = "111"
print('修改后:', copy)
程序运行结果:
修改前: {1: 'One', 2: 'Two', 3: 'Three'}
修改后: {1: 'One', 2: 'Two', 3: 'Three'}
修改后: {1: 'One', 2: 'Two', 3: 'Three'}
例2
作为对比,我们看一个使用=号复制的例子作为对比。
#!/usr/bin/python
# coding=utf-8
dic = {1:"One", 2: "Two", 3:"Three"}
copy1 = dic.copy()
copy2 = dic
print('修改前copy1:', copy1)
print('修改前copy2:', copy2)
dic[1] = "111"
print('修改后copy1:', copy1)
print('修改后copy2:', copy2)
程序运行结果.:修改前copy1: {1: 'One', 2: 'Two', 3: 'Three'}
修改前copy2: {1: 'One', 2: 'Two', 3: 'Three'}
修改后copy1: {1: 'One', 2: 'Two', 3: 'Three'}
修改后copy2: {1: '111', 2: 'Two', 3: 'Three'}
修改前copy2: {1: 'One', 2: 'Two', 3: 'Three'}
修改后copy1: {1: 'One', 2: 'Two', 3: 'Three'}
修改后copy2: {1: '111', 2: 'Two', 3: 'Three'}
我们看到使用=号复制的在原有字典修改后,也是随之修改,因为它复制的是内存地址,
而copy()函数则不同,它是对原有字典的浅复制,不是复制地址这么简单。