码迷,mamicode.com
首页 > 编程语言 > 详细

python中copy模块

时间:2019-10-10 15:51:22      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:列表   list   lis   usb   bsp   利用   三种方式   span   person   

import copy
person = [‘name‘,[‘saving‘,100]]
#浅copy三种方式
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)

结果

[‘name‘,[‘saving‘,100]]

浅copy的用处:

import copy
person = [‘name‘,[‘saving‘,100]]
p1 = person[:]
p2 = person[:]
p1[0] = ‘husband‘
p2[0] = ‘wife‘
p1[1][1] = 50
print(p1) #[‘husband‘, [‘saving‘, 50]]
print(p2) #[‘wife‘, [‘saving‘, 50]]

当p1和p2有某种特定关系的时候,我们希望修改其中一个列表的值,需要另一个列表的值也随之改变(比如上述例子中,夫妻的存款属于共同财产,我们希望当丈夫花掉50后,两人的共同存款随之改变,因此就可以利用到浅copy)

 

深copy

1 import copy
2 person = [name,[saving,100]]
3 person2 = copy.deepcopy(person)
4 print(person)   #[‘name‘, [‘saving‘, 100]]
5 print(person2)  #[‘name‘, [‘saving‘, 100]]
6 person[0] = fww
7 person[1][1] = 50
8 print(person)  #[‘fww‘, [‘saving‘, 50]]
9 print(person2) #[‘name‘, [‘saving‘, 100]]

深copy的时候,不管原来的列表做任何改变,person2都作为一个新的列表,不会发生改变。

 

python中copy模块

标签:列表   list   lis   usb   bsp   利用   三种方式   span   person   

原文地址:https://www.cnblogs.com/xifeng59/p/11648013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!