Python的浅拷贝

 时间:2026-02-12 18:21:57

1、打开Python开发工具IDEL,新建‘浅拷贝.py’文件,编写代码如下:

list = []

for i in range(10):

    list.append({'mykey':i})

print (list)

Python的浅拷贝

2、F5运行程序,打印出list列表内容:

[{'mykey': 0}, {'mykey': 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列表内容:

[{'mykey': 0}, {'mykey': 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 copy

qts = ['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把图片转化为彩色字符图
  • 一梦江湖镜头复位键功能如何开启
  • 米拉娜(白虎)怎么玩
  • 热门搜索
    春节期间去哪里旅游好 华山旅游景点 广西巴马旅游攻略 福清旅游景点 青海西宁旅游攻略 成都到西双版纳旅游 宁夏回族自治区旅游 梵蒂冈旅游攻略 广东旅游景点介绍 哈尔滨 旅游