【python 深拷贝与浅拷贝】

这篇具有很好参考价值的文章主要介绍了【python 深拷贝与浅拷贝】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python 深拷贝与浅拷贝

问题:

在用影刀编写流程的时候发现,明明只修改人名为“小张”对应的字典里面的值,但是所有的人名对应的值都被修改了。
【python 深拷贝与浅拷贝】,python
【python 深拷贝与浅拷贝】,python

原因:

第14行,设置键值对,值对应的变量“初始打卡类型字典”是前面流程生成的,还是引用了原来的地方。

用python来复现:

1、如果列表是前面流程生成的,那么要修改值,就都修改了。

aliens = []
new_alien = {"color": "green"}
#往字典里添加5个字典
for num in range(5):
    aliens.append(new_alien)
print(aliens)
#修改第一个字典的颜色
aliens[0]["color"] = "red"
print(aliens)

【python 深拷贝与浅拷贝】,python
2、如果列表的值本来就写好了,修改特定的值,后面字典里面值不会被同步修改。
【python 深拷贝与浅拷贝】,python
【python 深拷贝与浅拷贝】,python

解决方案:

赋值的时候用深拷贝
在从整体的dict_instance中取出单个字典的时候,用深拷贝
【python 深拷贝与浅拷贝】,python文章来源地址https://www.toymoban.com/news/detail-743180.html

到了这里,关于【python 深拷贝与浅拷贝】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的深拷贝与浅拷贝

    深拷贝和浅拷贝是编程中常用的两种对象复制方式,它们在复制对象时处理对象内部引用的方式上有所不同。 浅拷贝 浅拷贝(Shallow Copy)只复制对象的顶层结构,而不复制对象内部的引用对象。换句话说,浅拷贝只复制对象的值类型字段和引用类型字段的引用,而不复制引

    2024年01月22日
    浏览(40)
  • 面试官:深拷贝与浅拷贝有啥区别?

    首先,明确一点深拷贝和浅拷贝是针对对象属性为对象的,因为基本数据类型在进行赋值操作时(也就是拷贝)是直接将值赋给了新的变量,也就是该变量是原变量的一个副本,这个时候你修改两者中的任何一个的值都不会影响另一个,而对象或者引用数据来说在进行浅拷贝

    2024年02月07日
    浏览(40)
  • Java中的集合及深拷贝与浅拷贝

    Java是一种面向对象的编程语言,其中集合是常用的数据结构之一,具有方便快捷的特点。在Java开发中,我们常常需要对集合进行复制(拷贝)操作。但是,拷贝操作并不是简单的复制,而应该分为浅拷贝和深拷贝两种不同的方式,本文将分别介绍Java中集合的浅拷贝和深拷贝

    2024年02月07日
    浏览(36)
  • 深入探索前端之道:JavaScript深拷贝与浅拷贝的解析与实现

    前端开发中,数据的复制是一个常见的操作。尤其是在处理对象和数组时,我们需要考虑的是一个浅拷贝还是深拷贝。那么,什么是深拷贝和浅拷贝?它们在前端开发中有什么作用?如何实现这两种拷贝?这是我们在本文将讨论的问题。 浅拷贝 浅拷贝是一种数据复制方式,

    2024年02月10日
    浏览(37)
  • Python中的深拷贝浅拷贝

    浅拷贝就是:拷贝了引用,并没有拷贝内容,和在Linux中的硬链接有些类似,在python中,使用=赋值的动作就是一个浅拷贝 浅拷贝中的新旧对象,共用一个内存地址,当操作新旧对象中的任意对象,发生修改,内存地址中的值发生改变,则新旧对象都会发生变化;如果新旧对象

    2024年02月09日
    浏览(37)
  • Python中浅拷贝与深拷贝

    在本文中,将介绍如何在Python 3中复制或“克隆”对象,以及所涉及的一些注意事项。 注:本教程是用Python 3编写的,但是在复制对象时,Python 2和3并没有什么区别。当有不同时,会在文中指出。 让我们首先看看如何复制Python的内置集合。Python内置的集合是可变的,如列表、

    2024年02月02日
    浏览(40)
  • 图解Python深拷贝和浅拷贝

    Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。 下面本文就通过简单的例子介绍一下这些概念之间的差别。 对象赋值 直接看一段代码: 代码的输出为: 下面来分析一下这段代码: 首先,创建了一个名为will的变

    2024年04月13日
    浏览(70)
  • Python - 拷贝 - 浅拷贝(Shallow Copy)和深拷贝(Deep Copy)

    假设我以这样的方式创建一个 3 x 5 的二维数组: 然后我修改 a [ 2 ] [ 3 ] a[2][3] a [ 2 ] [ 3 ] 的值为 1 1 1 : 结果会发现数组 a a a 中第二维坐标为 3 3 3 的数全部被修改为了 1 1 1 ,而没有发生“第一维坐标为 2 2 2 的数全部被改成了 1 1 1 ” 这就涉及到了Python中的拷贝机制。 Python中

    2023年04月08日
    浏览(39)
  • Python:列表的浅拷贝与深拷贝

    相关阅读 Python专栏 https://blog.csdn.net/weixin_45791458/category_12403403.html?spm=1001.2014.3001.5482         在python语言中,因为其面向对象的特性,在进行列表拷贝时可能会出现一些意想不到的结果,涉及到列表的浅拷贝和深拷贝相关问题,本文将对其进行总结。         首先我们来

    2024年02月09日
    浏览(37)
  • python-浅拷贝(copy)与深拷贝(deepcopy)

    目录 一、前言: 二、深拷贝与浅拷贝的异同:         1.相同点:                2.不同点:         3.形象说明:         注意: 三、浅拷贝:  3.1.1浅拷贝示意图: 3.1.2示意图说明         1.对象与子对象(元素)的关系:         2.对象:         3.元

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包