首页 > 其他分享 >深浅拷贝

深浅拷贝

时间:2023-12-06 18:55:46浏览次数:36  
标签:对象 list num 深浅 print 拷贝 copy

深浅拷贝

1.浅拷贝

  • 浅拷贝是指创建一个新对象,并将原始对象的元素复制到新对象中

    # num_list = [1, 2, [3, 4]]
    # # 使用浅拷贝创建拷贝对象
    # copy_list = copy.copy(num_list)
    #
    # # 修改原对象中的可变数据类型
    # num_list[2].append(5)
    #
    # print("原对象:", num_list)		# [1,2,[3,4,5]]
    # print("拷贝对象:", copy_lsit)# [1,2,[3,4,5]]
    # 两个列表还是引用同一个内存地址,当num_list改变时,copy_list也随之改变
    
    

2.深拷贝

  • 深拷贝是创建了一个新的对象,该对象与原对象完全独立
  • 拷贝后我们对新对象和老对象进行内容修改,完全不会互相影响,因为他们各自独立
# num_list = [1, 2, [3, 4]]
# # 使用深拷贝创建拷贝对象
# copy_list = copy.deepcopy(num_list)
#
# # 修改原对象中的可变数据类型
# num_list[2].append(5)

# print("原对象:", num_list)		# [1,2,[3,4,5]] 
# print("拷贝对象:", copy_lsit)# [1,2,[3,4]]
# 深拷贝后copy_list申请了一块新的内存地址存放值,原列表更改和新列表没有关系,内存指向不一样了

标签:对象,list,num,深浅,print,拷贝,copy
From: https://www.cnblogs.com/Formerly/p/17880287.html

相关文章

  • 深浅拷贝问题
    深浅拷贝问题copy.copy浅拷贝copy.deepcopy深拷贝浅拷贝copy.copycopy.copy浅拷贝原来的拷贝对象------拷贝出了一个新的对象修改原对象------原对象必须改变-----新对象也会随着原对象的改变而改变。总结:复制一份原来的对象,如果原来的对象中存在可变数据类型,那么修......
  • 深浅拷贝
    深浅拷贝【1】浅拷贝使用浅拷贝创造对象,修改原来对象中的可变数据类型复制的对象也会随着原来的对象改变而改变首先,会为整数1分配一个内存空间。变量a和b都指向了这个内存空间(内存地址相等),所以他们的id相等。a=1b=1print(id(a))#2057422768print(id(b))#......
  • 浅谈深浅拷贝
    【一】深浅拷贝深拷贝(deepcopy)和浅拷贝(shallowcopy)是在Python中用于复制对象的两种方式。它们的作用如下:1.浅拷贝:浅拷贝创建一个新的对象,但是该新对象的元素是对原始对象的引用。换句话说,浅拷贝只复制了对象的引用,而不是对象本身。当原始对象中的元素发生变化时,浅拷贝的对象也......
  • 不含指针的结构体赋值实现,直接内存拷贝
    #include<stdio.h>#include<stdlib.h>structA{ intc; charb[20]; charstrs[10][10]; intk;};intmain(){ //Aa={...};//帮我初始化 structAa={ 1,//Initializecwithsomeinteger "ExampleString",//Initialize......
  • 深拷贝和浅拷贝
    在C++中,深拷贝和浅拷贝是两种不同的对象复制方式:浅拷贝:当我们创建一个对象的副本时,如果仅仅复制所有成员变量的数据,那么这就是浅拷贝。这在所有的变量都在栈内存中分配时工作得很好1。但是,如果有些变量是在堆内存中动态分配的,那么复制的对象变量也会引用同一块内存位置1。......
  • JS赋值、浅拷贝、深拷贝的区别
    在说明它们的区别之前,首先需要了解JS的数据类型和它们的存放位置。  数据类型基本数据类型:String、Number、Boolean、Undefined、Null、Symbol(es6)、BigInt(es6)引用数据类型:Object  存放位置基本数据类型是存放在栈中的数据段,直接存储的就是值本体。引用数据类型是存......
  • docker 拷贝docker中文件,并获取最新
    1、2、#!/bin/bashdate_str=$(date+_%Y_%m_%d_%H_%M_%S.sql.gz)echo'开始备份数据'$date_str#获取容器idmysqlid=`dockerps-aqf"name=mysql57"`#进入mysql容器dockerexec-i${mysqlid}/bin/bash<<'EOF'mysqldump-hlocalhost-uroot......
  • Python之深浅拷贝
    浅copy:   1.是把列表本身独立,里面的元素是被两个列表共享的   2.当其中一个列表中的元素被改变时,另一个列表中的元素不会随之变化。   3.当列表里面还有列表时,修改内部列表的内容时,另一个列表中的内部列表也会随之变化a1=["a","b","c","aa"]b1=a1a1[0]="1"prin......
  • 自定义拷贝程序
    【一】需求介绍制作一个简易的文件拷贝程序【二】功能分析拷贝程序输入原始文件路径输入目标文件路径【三】代码实现#1.获取想要拷贝的文件路径source_file_path=input('请输入想要拷贝的文件路径>>>:').strip()#2.获取目标路径(到底拷贝到哪里)target_file_pat......
  • 深度拷贝
    1、java后台BeanUtils.copyProperties不是深拷贝要实现高性能且安全的深度克隆方法还是实现Serializable接口,多层克隆时,引用类型均要实现Serializable接口。例如:publicclassBaseEntityextendsBaseCreatedUpdatedDeletedEntityimplementsSerializable 参考文献:https:/......