【Python 知识点】

本文介绍了Python中的可变对象与不可变对象的概念,详细解析了深拷贝和浅拷贝的区别,特别是在处理可变元素时的行为。接着讨论了生成器和迭代器的工作原理,以及在迭代过程中的作用。最后,探讨了tuple、list、dict和set四种数据结构的特点,特别是它们之间的区别和应用场景。
摘要由CSDN通过智能技术生成

1 什么是可变对象,什么是不可变对象:

可变对象是指,一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值;

不可变对象是指,一个对象所指向的地址上值是不能修改的,如果你修改了这个对象的值,那么它指向的地址就改变了,相当于你把这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了,但是可变对象就不会做这样的动作,而是直接在对象所指的地址上把值给改变了,而这个对象依然指向这个地址。数字,字符串,元组

深拷贝和浅拷贝需要注意的地方就是可变元素的拷贝:

首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。

深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象

浅拷贝,要看对象是否可变(list 可变,int,float,complex,long,str,unicode,tuple 不可变),对于不可变对象,浅拷贝与深拷贝作用一样,源对象与当前对象没关系了;对于可变对象,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。

在浅拷贝时,拷贝出来的新对象的地

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值