Python的浅拷贝

2024-10-13 18:00:39

1、打开Python开发工具IDEL,新建‘浅拷贝.py’文件,编写代码如下:list = []for i in range(10): list.append({'mykey':i})print (list)

Python的浅拷贝

3、在‘浅拷贝.py’文件,继续编写代码如下;list = []for i in range(10): list.append({'mykey':i})print (list)list1 = []dicta = {'mykey':0}for i in range(10): dicta['mykey']=i list1.append(dicta)print (list1)

Python的浅拷贝

5、这是因为浅拷贝,列表中每项都存的只是字典的引用,指向同一地址,而每次dicta['mykey']重新赋值列表中每项都随之改变。

6、清空‘浅拷贝.py’内容,重新写代码如下:import copyqts = ['y','z'] list1 = ['x',qts]list = copy.copy(list1)print (list1)print (list)list1.append('6')print (list1)print (list)qts[0]='change'print (list1)print (list)

Python的浅拷贝

8、第一次list = copy.copy(list1)浅拷贝后,list和list1指向了相同的地址,之后list1.append('6')这次list1增加了一个字符串的指向,与list无关,但是当他们共同指向的嵌套列表qts改变内容后,两个列表都会受到影响。

猜你喜欢