import copyperson = [‘name‘,[‘saving‘,100]]#浅copy三种方式p1 = copy.copy(person)p2 = person[:]p3 = list(person)
结果
[‘name‘,[‘saving‘,100]]
浅copy的用处:
import copyperson = [‘name‘,[‘saving‘,100]]p1 = person[:]p2 = person[:]p1[0] = ‘husband‘p2[0] = ‘wife‘p1[1][1] = 50print(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都作为一个新的列表,不会发生改变。
原文地址:https://www.cnblogs.com/xifeng59/p/11648013.html
时间: 2024-10-08 21:12:19