Python的浅拷贝

 时间:2024-10-13 18:00:39

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

Python的浅拷贝

2、F5运行程序,打印出list列表内容:[{&#补朱锚卦39;mykey': 0}, {'myke烤恤鹇灭y': 1}, {'mykey': 2}, {'mykey': 3}, {'mykey': 4}, {'mykey': 5}, {'mykey': 6}, {'mykey': 7}, {'mykey': 8}, {'mykey': 9}

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的浅拷贝

4、F5运行程序,打印出list列表内容:[{&#补朱锚卦39;mykey': 0}, {'myke烤恤鹇灭y': 1}, {'mykey': 2}, {'mykey': 3}, {'mykey': 4}, {'mykey': 5}, {'mykey': 6}, {'mykey': 7}, {'mykey': 8}, {'mykey': 9}打印出list1列表内容:[{'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}, {'mykey': 9}]

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的浅拷贝

7、F5运行程序,打印出几次列表内容:['垓矗梅吒x', ['y', 'z']]['x', [媪青怍牙'y', 'z']]['x', ['y', 'z'], '6']['x', ['y', 'z']]['x', ['change', 'z'], '6']['x', ['change', 'z']]

Python的浅拷贝

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

  • 三国志10 攻略
  • js动态生成输入框 怎么获取值
  • 用python把图片转化为彩色字符图
  • 一梦江湖镜头复位键功能如何开启
  • 米拉娜(白虎)怎么玩
  • 热门搜索
    手抄报关于读书 手抄报a3版面设计图 讲普通话 写规范字手抄报 书香校园手抄报资料 清明节手抄报设计图 关于体育精神的手抄报 清明祭奠英烈手抄报 快乐阅读手抄报内容 读书的手抄报图片 我心中的祖国手抄报