li = [1,1,2,3,4,5,6,7,8,9]l2=li  # 这样定义不行共用内存空间,其实是一体# l2 = [1,1,2,3,4,5,6,7,8,9]l3=li[:]for i in l2:    if i%2!=0:        li.remove(i)print(li)  # [1, 2, 4, 6, 8]print(id(li))  # 获取内存地址,li、l2 li=l2 是相同的内存地址print(id(l2))print(id(l3))# 循环删除list的时候,都会出现这样的问题# 循环的时候,不要删除元素,下标会错乱# 解决的方法是利用两个list,循环不变的list# 深拷贝 l2=li[:] 两个不同的内存地址,互不影响  两个不同的内存地址# 浅拷贝  l2=li   互相影响  两个的内存地址相同import  copy
d={'name':'xiaohei','l':[4,5,6]}d1=d  #浅拷贝 和copy.copy的方法一样,虽然copy的ip内存地址不同,但是最里面的一层【】做不了深拷贝d2=copy.deepcopy(d) # 深拷贝d1['l'].append('8')d2['sex']='女'd1['age']=18

print(d)  #{'name': 'xiaohei', 'l': [4, 5, 6, '8'], 'age': 18} #浅拷贝的影响,深拷贝不影响

转载于:https://www.cnblogs.com/skyxiuli/p/10741119.html

python中的深浅拷贝的区别相关推荐

  1. python中的深浅拷贝

    1.    浅拷贝  copy.copy 浅拷贝是对于⼀个对象的顶层拷贝 通俗的理解是:拷贝了引⽤,并没有拷贝内容 浅拷贝只复制第一层数据,更深层的引用不管. 2.    深拷贝   copy.dee ...

  2. Python中深拷贝与浅拷贝的区别?

    往期面试题: 列举Python中的标准异常类? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 说说Python模块主要分哪三类? 废话不多说,开始今天的题目: 问:说说Pyt ...

  3. Python赋值与深浅拷贝

    # coding=utf-8 #Python 赋值 与深浅拷贝 #Python 赋值时会创建一个新的引用,对不可变对象,实际上象创建一个副本,但对可变对象,因为是引用,当对其中一个对象的元素进行操作时 ...

  4. python中浅拷贝和深拷贝的区别_Python中浅拷贝和深拷贝的区别

    Python中浅拷贝和深拷贝的区别 浅拷贝和深拷贝示意图 如上图,简单点说 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deepcopy 深拷贝 拷贝 ...

  5. 什么是深浅拷贝,区别

    深浅拷贝的区别 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是 否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那 就是深拷贝,自食其力. impor ...

  6. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  7. python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...

    昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...

  8. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  9. python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...

    [摘要]今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题.如果参考答案不够好,或者有错误的话,麻烦大家可以在留言 ...

最新文章

  1. 在Windows上运行Spark程序
  2. 机器学习python——python基础
  3. 第1次作业:阅读优秀博文谈感想
  4. leetcode 203 移除链表元素 C++
  5. SpringMVC接收哪些类型参数参数
  6. 未能打开组策略对象 您可能没有合适的权限
  7. 页表长度和页表大小_linux内核页表映射机制:线性地址如何转为物理地址?
  8. hololens与混合现实开发pdf_增强现实与虚拟现实:过去和未来
  9. ai智能时代教育内容的改变_人工智能正在改变我们的评论方式
  10. MapReduce----并行支持向量机(PSVM)第二部分之原始对偶内点法
  11. ubuntu 换软件源
  12. 计算机打不开硬盘,电脑有一个磁盘打不开怎么处理
  13. ZOJ - 3939
  14. 几何光学学习笔记(23)- 5.6 远心光路
  15. web前端做汽车之家官网,HTML5+CSS3+JS
  16. 《三体》中的经典名句
  17. 循环神经网络 - 卷积神经网络
  18. 大连市金州区石河计算机学校,2021大连市金州区安全教育平台登录入口网址【最新】...
  19. 重新认识java(十一)---- java中的数组
  20. 哈哈日语 日语五十音图记忆和发音方法

热门文章

  1. 20145209刘一阳《JAVA程序设计》第1周学习总结
  2. Linux驱动开发 -- 打开dev_dbg()
  3. 网站域名备案时需要什么资料
  4. 2008年9月三级网络技术考试试卷 参考答案1
  5. [转] 年终回顾,为你汇总一份「前端技术清单」
  6. Which path should be used jdk or jre for JAVA_HOME environment variable?
  7. asp.net生产环境和开发环境的错误日志包装策略
  8. 组策略不让你登陆你怎么办
  9. Javascript: IE中命名函数直接量的Bug?
  10. vue常见知识点总结