博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习之深浅拷贝
阅读量:5349 次
发布时间:2019-06-15

本文共 675 字,大约阅读时间需要 2 分钟。

深浅拷贝

浅拷贝:

1、针对的是可变数据类型:list、dict、set  ,不可变数据类型int、str、tuple、bool 是没有拷贝一说的,他们都没copy() 方法

2、浅拷贝后是在内存地址中分配了一份新的地址,且浅拷贝只拷贝了第一层,第二层不会拷贝,故第二层如果改变,原数据及浅拷贝后的数据也将改变

3、= 赋值不是浅拷贝,[:] 切片是浅拷贝

a = [11,22,[11,22]]

b = a  

注:以上称为赋值,只是将a,b都指向了同一个内存地址

a.append(33)

print(b)

>>> [11,22,[11,22],33]   还是一起改变,b和a都是列表的内存地址的两个别名

c = a.copy()   用方法copy是浅拷贝,id(a)  与 id(c)  的内存地址是不同的

3、切片是浅拷贝

1 lis = [11,22,[11,22]]2 qie = lis[:]3 lis[2].append(33)4 print(lis,qie) # [11, 22, [11, 22, 33]] [11, 22, [11, 22, 33]]5 print(id(lis),id(qie))   # 1482689615624 1482689615752

深拷贝:

就是将原文件内部元素完全拷贝,不会将因为第二层元素改变,另一个也会改变

深拷贝方法:

import  copy

list_new = copy.deepcopy()

转载于:https://www.cnblogs.com/sunxiuwen/p/9179293.html

你可能感兴趣的文章
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>
composer 安装laravel
查看>>
8-EasyNetQ之Send & Receive
查看>>
Android反编译教程
查看>>
List<string> 去重复 并且出现次数最多的排前面
查看>>
js日志管理-log4javascript学习小结
查看>>
Android之布局androidmanifest.xml 资源清单 概述
查看>>
How to Find Research Problems
查看>>
Linux用户管理
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
使用iperf测试网络性能
查看>>
图片的显示隐藏(两张图片,默认的时候显示第一张,点击的时候显示另一张)...
查看>>
Docker 安装MySQL5.7(三)
查看>>
python 模块 来了 (调包侠 修炼手册一)
查看>>
关于CSS的使用方式
查看>>
分析语句执行步骤并对排出耗时比较多的语句
查看>>
原生JS轮播-各种效果的极简实现
查看>>