python基础学习9----深浅拷贝
数据类型有可变类型和不可变类型
不可变类型:整型,长整型,浮点数,复数,布尔,字符串,元组
可变类型:列表,字典
浅拷贝
简单说只对第一层进行拷贝,如下对于列表中的列表的数据进行改变,list1和list2会相互影响
实际是list1和list2中的列表[1,2]的内存地址存储的是相同的,改变的是[1,2]内存地址所指向的数据,所以list1和list2会相互有影响
list1=[[1,2],3,4]
list2=list1.copy()#浅拷贝
list2[1]=5
print(list1)#[[1, 2], 3, 4]
print(list2)#[[1, 2], 5, 4] list2[0][0]=6
print(list1)#[[6, 2], 3, 4]
print(list2)#[[6, 2], 5, 4]
深拷贝
将内容复制的更彻底,重新开辟内存空间,list1和list2相互没有影响
import copy list1=[[1,2],3,4]
list2=copy.deepcopy(list1)#深拷贝
#list2=copy.copy(list1)此处若这样写则和浅拷贝相同
list2[1]=5
print(list1)#[[1, 2], 3, 4]
print(list2)#[[1, 2], 5, 4] list2[0][0]=6
print(list1)#[[1, 2], 3, 4]
print(list2)#[[6, 2], 5, 4]
对于全部都是不可变类型的数据,无论是浅拷贝还是深拷贝,最终两个数据指向的地址都是相同的
import copy list1=[[1,2],3,4]
list2=copy.deepcopy(list1)
print(id(list1))#2517190549256
print(id(list2))#2517190547976
#此处两个id不同 a = 1
b = copy.deepcopy(a)
print(id(a))#140705811977248
print(id(b))#140705811977248
#此处两个id相同
python基础学习9----深浅拷贝的更多相关文章
- python基础学习笔记——深浅拷贝
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 lst1 = ["⾦⽑狮王", "紫衫⻰王&qu ...
- Python基础入门知识点——深浅拷贝
深浅拷贝 对象引用.浅拷贝.深拷贝(拓展.难点.重点) Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝 ...
- python基础学习之深浅复制的概念
1.深浅复制 浅复制,python自带,深复制需要导入模块包 import copy 使用深浅复制,根据id不同写出他们的区别a = [1,2,3]b = [6,7,8]s1 = [a,b]print ...
- python基础三(深浅拷贝)
1.赋值操作 list_1 = [1,2,3,['barry','Jerry']] list_2 = list_1 list_1[0] = 111 print(list_1) # [111, 2, 3 ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
随机推荐
- 实现比较器接口IComparable<T>,让自定义类型数组也能排序
using System; namespace LinqDemo1 { class Program { static void Main(string[] args) { Person[] perso ...
- 【详解】JNI (Java Native Interface) (三)
案例三:C代码访问Java对象的实例变量 获取对象的实例变量的步骤: 1. 通过GetObjectClass()方法获得此对象的类引用 2. 通过类引用的GetFieldID()方法获得实例变量的 ...
- BIO与NIO、AIO的区别(这个容易理解)
转自:http://blog.csdn.net/skiof007/article/details/52873421 BIO与NIO.AIO的区别(这个容易理解) IO的方式通常分为几种,同步阻塞的BI ...
- java8 Stream使用案例
1. 原理 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator. 原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执 ...
- (转)第十一篇:springboot集成swagger2,构建优雅的Restful API
声明:本部分内容均转自于方志明博友的博客,因为本人很喜欢他的博客,所以一直在学习,转载仅是记录和分享,若也有喜欢的人的话,可以去他的博客首页看:http://blog.csdn.net/forezp/ ...
- POJ 3692 Kindergarten(最大团问题)
题目链接:http://poj.org/problem?id=3692 Description In a kindergarten, there are a lot of kids. All girl ...
- [转](SQL Server) Convert a File from utf-8 to ANSI (such as Windows-1252)
本文转自:https://example-code.com/sql/charset_convert_file_from_utf8_to_ansi.asp CREATE PROCEDURE Chilka ...
- [日常] Go语言圣经--Map习题
练习 4.8: 修改charcount程序,使用unicode.IsLetter等相关的函数,统计字母.数字等Unicode中不同的字符类别. 练习 4.9: 编写一个程序wordfreq程序,报告输 ...
- 安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
发现有这个提示:cannot remove `libtoolT’: No such file or directory , 编辑 configure文件,查找 $RM "$cfgfile&q ...
- Hbuilder Webview调试+逍遥安卓模拟器
软件版本: HBuilder : 9.0.2.201803061935 逍遥安卓:5.2.2 webview相当于一个浏览器的tab,通过在webview中修改,模拟器端会实时刷新效果.从而达到调试手 ...