首页 > 编程语言 >python的深浅拷贝

python的深浅拷贝

时间:2023-09-08 14:22:58浏览次数:47  
标签:lt2 python lt 深浅 print 拷贝 copy 变化

通过id内存地址发生变化

print()打印出来的变化,这种现象就是

’拷贝‘,’浅拷贝‘,’深拷贝‘

拷贝(赋值)

lt = [1,2,3]
lt = lt

lt.append(4)
print(lt)
# 因为列表是可变类型,所以lt的值变化,lt2的值也跟着变化
print(lt2)

浅拷贝copy.copy()

浅拷贝,拷贝出来的值内存地址都一样,但此时需要引用库

一般情况下L2拷贝不来的值,不会随着L1的变化而变化

lt2没有变化的情况
import copy
lt =[1,2,3]
lt2 = copy.copy(lt)

lt.appent(4)
print(lt)===>[1,2,3,4]		
print(lt2)==>[1,2,3]
lt2变化的情况
import copy
lt = [1,2,3,[4,5,6]]
lt2 = copy.copy(lt)

lt(-1).appent(7)
print(lt)
print(lt2)

深拷贝copy.deepcopy()

深拷贝中的拷贝对象,可变类型地址改变,不可变类型不改变

import copy
lt = [1,2,3,[4,5,6]]
lt2 = copy.deepcopy(lt)

lt(-1).appent(7)
print(lt)
print(lt2)

不管怎样深拷贝的拷贝对象都不会改变

牢记:拷贝/浅拷贝/深拷贝 只针对可变数据类型

总结

拷贝:当lt2为lt的拷贝对象时,lt内的可变类型变化,lt2就变化;lt内的不可变类型变化,lt2就变化

简单的赋值

浅拷贝:当lt2为lt的浅拷贝对象时,lt内可变类型变化,lt2就变化;lt内的不可变化类型变化,lt2就不变化

copy.copy()

深拷贝:当lt2为lt深拷贝对象时,lt内的可变类型变化,lt2就不变化;lt内的不可变类型变化,lt2就不变化

copy.deepcopy()

毫无用处,面试经常用(要牢记!)

标签:lt2,python,lt,深浅,print,拷贝,copy,变化
From: https://www.cnblogs.com/hanyingshuo/p/17687464.html

相关文章

  • Python语言的数据可视化库
    Seaborn是一个基于Python语言的数据可视化库,它能够创建高度吸引人的可视化图表。在Matplotlib库的基础上,提供了更为简便的API和更为丰富的可视化函数,使得数据分析与可视化变得更加容易。Seaborn的设计哲学是以美学为中心,致力于创建最佳的数据可视化。同时也保持着与Python生态系统......
  • Python跨平台兼容性解决方案及实现方法
    在如今多样化的网络计算环境下,开发者们面临着将应用程序运行于不同操作系统和硬件平台上的挑战。本文旨在分享一些关键技巧和实际操作步骤,帮助您更好地理解并实现Python中的跨平台兼容性,使您编写出具有广泛适应性、可移植性强以及稳定高效的代码。一、了解目标平台特点......
  • 【Python 自动化】小说推文一键生成思路概述
    最近看了一下小说推文成品软件的思路,发现可以完全迁移到我的BookerAutoVideo上面来。这篇短文里面,我试着分析一下整个推文视频生成的流程,以及简要阐述一下有什么工具。整体流程是这样:分句原文是按照段落组织的,我们可能希望按照句子生成图片。于是我们需要把段落拆成句子,像这......
  • python爬虫练习1-百度图片
     写了一个简单的爬图片练习importrequestsimportosdefbd_img(title1):url=f'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10755979809828115852&ipn=rj&ct=201326592&is=&fp=result&fr=&word={title1}&queryWord......
  • 深入理解 Python and 逻辑运算符(踩坑)
    1.引子defenabled()->bool:a=["a,"b"] b=Truec=Falsereturn(bandc)or(banda)以上代码返回什么?实际生产项目踩到的坑,也怪自己没理解到未,才疏学浅!!!想当然的以为python自己会做真值判断了。其实真值判断是在if条件语句时会生效,但在普通的......
  • python模拟用户登录
    python模拟用户登录目录python模拟用户登录一、授权认证二、Cookie认证一、授权认证1、HTTP基础认证importrequestsfromrequests.authimportHTTPBasicAuthurl="https://xxx.xxx.xxx/"username="admin"password="admin"#HTTP基础认证response=requests.ge......
  • python中元组的解包用法,以及 *在方法中的使用方法
    下面是关于python中*的用法详解1.*做法乘法运算符在python中,*作为乘法运算符是使用,用来进行两个数的乘法运算。示例代码:a=3b=4c=a*bprint(c)#12 2.*作为函数的可变参数(是元组的形式导入)单星号(*):*args。将所有参数以元组(tuple)的形式导入双星号(**):**kwargs。将参......
  • 【Python&GIS】矢量数据投影转换(坐标转换)
    ​    之前跟大家分享过面矢量数据投影转换和点矢量数据投影转换,但博主在日常工作的过程中发现之前分享的面矢量数据投影转换有时候会出现错误,或者转换后的效果不好。再一次偶然的过程中发现了新的坐标转换(投影转换)函数,所以今天和大家分享一下,大家在进行坐标转换时可以......
  • 【Python&RS】基于GDAL修改栅格数据的DN值
    ​    遥感工作者离不开栅格数据,有时候我们可能需要修改栅格数据的值,但ENVI和ArcGIS中并没有直接修改DN值的工具,只有栅格计算器、Bandmath这些工具去计算整个波段的值,或者EditClassificationImage工具可以修改ENVI分类后的像元值,但这个工具只对分类格式有效,博主整不......
  • 【题解】《PTA-Python程序设计》题目集分享
    第1章-1从键盘输入两个数,求它们的和并输出(30分)本题目要求读入2个整数A和B,然后输出它们的和。输入格式:在一行中给出一个被加数在另一行中给出一个加数输出格式:在一行中输出和值。输入样例:在这里给出一组输入。例如:18-48输出样例:在这里给出相应的输出。例如:......