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都作為一個新的列表,不會發生改變。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM