首页 > 其他分享 >赋值/浅拷贝/深度拷贝

赋值/浅拷贝/深度拷贝

时间:2023-04-29 20:11:31浏览次数:38  
标签:__ dict1 dict2 num user 深度 print 拷贝 赋值

 

/*
一: 赋值
二: 浅拷贝
二: 深拷贝
*/

 

一: 赋值

# 赋值
if __name__ == '__main__':
    dict1 = {'user':'Tom','num':[1,2,3]}
    
    # 直接赋值: 引用对象
    dict2 = dict1   
    print("dict1: 0x%x" %id(dict1), dict2)    # dict1: 0x17b63540100 {'user': 'Tom', 'num': [1, 2, 3]}
    print("dict2: 0x%x" %id(dict2), dict2)    # dict2: 0x17b63540100 {'user': 'Tom', 'num': [1, 2, 3]}

    dict2["user"] = "Jack"
    dict2["num"].append(66)
    print(dict1)    # {'user': 'Jack', 'num': [1, 2, 3, 66]}
    print(dict2)    # {'user': 'Jack', 'num': [1, 2, 3, 66]}

 

二: 浅拷贝

# 浅拷贝
if __name__ == '__main__':
    dict1 = {'user':'Tom','num':[1,2,3]}
    
    # 浅拷贝: 深拷贝一级目录; 二级目录为引用
    dict2 = dict1.copy()   
    print("dict1: 0x%x" %id(dict1), dict2)    # dict1: 0x2320afc0100 {'user': 'Tom', 'num': [1, 2, 3]}
    print("dict2: 0x%x" %id(dict2), dict2)    # dict2: 0x2320afc0200 {'user': 'Tom', 'num': [1, 2, 3]}

    dict2["user"] = "Jack"
    dict2["num"].append(66)
    print(dict1)    # {'user': 'Tom', 'num': [1, 2, 3, 66]}
    print(dict2)    # {'user': 'Jack', 'num': [1, 2, 3, 66]}

 


二: 深拷贝

# 深拷贝
import copy

if __name__ == '__main__':
    dict1 = {'user':'Tom','num':[1,2,3]}
    
    # 深拷贝: 完全独立
    dict2 = copy.deepcopy(dict1)  
    print("dict1: 0x%x" %id(dict1), dict2)    # dict1: 0x1c4fff30100 {'user': 'Tom', 'num': [1, 2, 3]}
    print("dict2: 0x%x" %id(dict2), dict2)    # dict2: 0x1c4805e9100 {'user': 'Tom', 'num': [1, 2, 3]}


    dict2["user"] = "Jack"
    dict2["num"].append(66)
    print(dict1)    # {'user': 'Tom', 'num': [1, 2, 3]}
    print(dict2)    # {'user': 'Jack', 'num': [1, 2, 3, 66]}

 

标签:__,dict1,dict2,num,user,深度,print,拷贝,赋值
From: https://www.cnblogs.com/huafan/p/17364426.html

相关文章

  • 深度特征融合相关论文(后续更新)
       FCN:FullyconvolutionalNetworksforSemanticSegmentation—CVPR2015ResNet:DeepResidualLearningforImageRecognition—CVPR2016FPN:Featurepyramidnetworksforobjectdetection—CVPR2017DenseNet:DenselyConnectedConvolutionalNetworks—CVP......
  • 通过反射获取进行字段赋值
    业务场景背景在以日期维度展示数据时,数据库中保存的数据一般会制作成宽表的形式比如:(id,projectNmae,projectID,indicator_name,indicator_value1,indicator_value1...,day)根据indicator_name获取对应指标,根据indicator_value获取对应周期数据,比如indicator_value1代表(day-1)问......
  • 通过反射获取进行字段赋值
    业务场景背景在以日期维度展示数据时,数据库中保存的数据一般会制作成宽表的形式比如:(id,projectNmae,projectID,indicator_name,indicator_value1,indicator_value1...,day)根据indicator_name获取对应指标,根据indicator_value获取对应周期数据,比如indicator_value1代表(day-1)问......
  • js封装深拷贝方法
    deepCopy:function(data){ if(data===null||data===undefined){ returnnull; } letresult=Array.isArray(data)?[]:{}; if(data&&typeofdata==='object'){ for(letkeyindata){ if(data[key]&&typeof......
  • Pytorch2 如何通过算子融合和 CPU/GPU 代码生成加速深度学习
    动动发财的小手,点个赞吧!PyTorch中用于图形捕获、中间表示、运算符融合以及优化的C++和GPU代码生成的深度学习编译器技术入门计算机编程是神奇的。我们用人类可读的语言编写代码,就像变魔术一样,它通过硅晶体管转化为电流,使它们像开关一样工作,并允许它们实现复杂的逻辑——这......
  • 【深度学习基础】使用libtorch部署pytorch训练的网络
    下载安装配置:https://pytorch.org/cppdocs/installing.html小例程:https://pytorch.org/cppdocs/frontend.html官方:https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.htmllibtorch的API官网文档:https://pytorch.org/cppdocs/api/library_root.html配置环......
  • 将字节数组输入流拷贝成字节数组输出流,将ByteArrayInputStream转成ByteArrayOutputStr
    /**将ByteArrayInputStream拷贝成ByteArrayOutputStream*将字节数组输入流拷贝成字节数组输出流*/publicstaticByteArrayOutputStreamgetByteArrayOutputStream(ByteArrayInputStreaminputStream)throwsIOException{ByteArrayOutpu......
  • [ML&DL] 深度学习的实践层面
    深度学习的实践层面训练集验证集测试集过程神经网络的训练是一个需要不断迭代的过程,一般先提出idea,然后编码实现、测试,根据测试结果再次调整思路......分组与比例数据集通常分为3个部分:训练集、验证集和测试集。训练集用于训练模型的参数。验证集用于选择最好的模型。......
  • 利用深度学习实现序列模型
    利用深度学习实现序列模型序列问题的含义是接收一个序列作为输入,然后期望预测这个序列的后续。例如继续预测2,4,6,8,10...。这在时间序列中是相当常见的,可以用来预测股市的波动、患者的体温曲线或者赛车所需的加速度。从原理上说,卷积神经网络可以有效处理空间信息,那么循环神经网......
  • 深度分析:全球千亿美元市值IT企业榜单及点评
    CNET科技资讯网7月3日CWEEK/每周电脑报特稿(文/蒋湘辉):2008年6月不仅是中国股市大幅下滑的一月,全球资本市场上的表现也很不乐观,IT大企业更是如此。和2008年5月30日的市值相比,6月30日市值1000亿美元以上的IT企业没有一家上涨。有4家在5月30日市值超过1000亿美元的IT企业在6月30的......