首页 > 编程语言 >python-深浅复制,可变/不可变对象

python-深浅复制,可变/不可变对象

时间:2024-04-15 13:00:11浏览次数:31  
标签:python 深浅 set1 可变 print 拷贝 copy 数据 id

#深复制(拷贝)
'''
import copy
a=[1,2,3,[4,5,6]]
#深拷贝
a_deepcopy=copy.deepcopy(a)
print(id(a))          #140399549872448
print(id(a_deepcopy)) #140399549873280
a[2]=100
print(a)              #[1, 2, 100, [4, 5, 6]]
print(a_deepcopy)     #[1, 2, 3, [4, 5, 6]]
a[3][0]=10
print(a)            #[1, 2, 100, [10, 5, 6]]
print(a_deepcopy)   #[1, 2, 3, [4, 5, 6]]
#改变a的元素,复制后的数据不会随着改变而改变
'''
#浅拷贝:数据办共享,复制 数据会独立存放,但是只拷贝成功到元数据的第一层,也就是拷贝后的第二层数据会随原数据改变
# import copy
# a=[1,2,3,[4,5,6]]
# #深拷贝
# a_copy=copy.copy(a)
# print(id(a))          #140460666104000
# print(id(a_copy)) #140460666104832
# a[2]=100
# print(a)              #[1, 2, 100, [4, 5, 6]]
# print(a_copy)     #[1, 2, 3, [4, 5, 6]]
# '''第一层没有随之改变'''
# a[3][0]=10
# print(a)            #[1, 2, 100, [10, 5, 6]]
# print(a_copy)   #[1, 2, 3, [10, 5, 6]]
'''第二层会随之发生变化'''

'''
深拷贝:完全复制,原数据发生变化,备份数据不会有任何影响,提高数据的存放安全性----日常备份
浅拷贝:半复制半数据共享,原数据第二层发生变化,备份数据也会随之发生变化
浅拷贝的应用场景---如日常办公时,在一个表时给链接

标签:python,深浅,set1,可变,print,拷贝,copy,数据,id
From: https://www.cnblogs.com/clairedandan/p/18135729

相关文章

  • python 实现简单的web功能
    BaseHTTPRequestHandler介绍这是一个以TCPServer为基础开发的模块,可以在请求外层添加http协议报文,发送http协议。基于BaseHTTPServer的HttpServer的处理流程:1.HTTPServer绑定对应的应答类(BaseHTTPRequestHandler)http_server=HTTPServer((’’,int(port)),ServerHTTP)2.监......
  • 函数式编程思想 VS 可变性理论 20240415
    函数式编程(FunctionalProgramming,FP)是一种编程范式,它将计算视为数学函数的求值,并避免使用程序状态以及易变对象。函数式编程的核心思想包括:不可变性(Immutability):在函数式编程中,数据是不变的。一旦创建了一个数据结构,就不能再改变它。所有的操作都会产生新的数据结构。纯......
  • 使用Python生成二维码
    1、背景上一次我们介绍了什么是二维码,读过这篇文章以后,相信大家对二维码已经有了一定的认识,那么有没有想过如何自己动手生成二维码呢?二维码在我们的生活与工作中,都能够做什么呢?今天我们来探讨一下用Python如何生成二维码。2、使用哪些库Python具有丰富的第三方库,能够生成二维码......
  • python secrets 模块
    secrets说明secrets模块用于生成高度加密的随机数,适于管理密码、账户验证、安全凭据及机密数据。生成随机数secrets模块是操作系统提供的最安全地随机性来源。choice(sequence)从非空序列中返回一个安全的随机元素。importsecrets#假设我们有一个元素列表elements=......
  • Python 生成测试数据 - faker 模块
    Python生成测试数据-faker模块摘自:http://notes.zhengxinonly.com/posts/2023-09-04.htmlFaker是一个生成数据的Python库,Faker数据通常用于生成测试数据。初始化操作首先需要安装faker模块pipinstallfakerfaker.Faker()创建并初始化一个伪造的生成器,该伪造器......
  • python使用NVlabs/stylegan3生成图片和视频
    此项目只能随机生成图片,不能以图生图先把源码克隆到本地,https://github.com/NVlabs/stylegan3进入项目文件夹,激活虚拟环境condaenvcreate-fenvironment.ymlcondaactivatestylegan3访问https://pytorch.org/get-started/locally/,根据自己的环境选择在虚拟环境执行pi......
  • Python 超好用的几种 f-string 方式,你都会吗 ?
    Python超好用的几种f-string方式,你都会吗?f-string是Python3.6版本引入的一种字符串格式化方法,它允许我们将变量、表达式直接插入到字符串中。本文将介绍f-string的大部分使用方式,快来检查一下你是否全部都掌握了。基本用法f-string是Python中用于字符串格式化的语......
  • Python里的optparse
    Python里的optparse是一个强大的命令行选项解析库argument--参数在命令行中输入的字符串,并会被shell传给 execl() 或 execv()在Python中,参数将是 sys.argv[1:] 的元素注:sys.argv[0] 是被执行的程序的名称fromoptparseimportOptionParser#定义自己的用......
  • python项目位置迁移后,虚拟环境无法使用
    一、虚拟环境无法使用问题修改虚拟环境目录/pyvenv.cfg文件中的路径修改虚拟环境目录/scripts/activate.bat文件中**VIRTUAL_ENV参数**的值,改为当前虚拟环境的路径。另外,项目路径最好不要带中文,否则会导致虚拟环境无法使用(变成使用环境变量终端python)。来源:https://blog......
  • 苹果(MAC)操作系统(OSX)上设置Python3为Python命令启动的方式
    通过HomeBrew安装的Python启动命令为Python3,pip3HomeBrew安装Python的命令为:brewinstallpython然而,很多脚本里Python的启动命令为Python如何使OSX上的Python3命令通过Python启动呢?1.执行下列命令brewinfopython会得到如下输出信息:==>[email protected]:stable3......