python中copy模块
Posted xifeng59
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中copy模块相关的知识,希望对你有一定的参考价值。
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模块的主要内容,如果未能解决你的问题,请参考以下文章