Python中核心概念对比:可变不可变、可迭代对象、有序无序、容器迭代器、浅拷贝深拷贝
·
一、可变vs不可变
1.不可变对象:创建后内容不能修改
2.可变对象:创建后内容可以修改
二、可迭代对象
可以用for循环遍历的对象就是可迭代对象。
三、有序 vs 无序
1.有序对象:元素有固定顺序,支持索引。list, tuple, str, range, bytes, bytearray
2.无序对象:元素无固定顺序,不支持索引。set, frozenset
四、容器与迭代器
1.定义:可以包含其他对象的对象,可以用in操作符检查是否包含。
2.迭代器:它是一个对象(任何Python对象)。 它实现了 __iter__() 方法(返回自身)。它实现了 __next__() 方法(返回下一个元素,没有则抛出StopIteration)
2.容器与迭代器的区别:
容器:存储元素,可多次迭代。
迭代器:一次性产生元素,迭代器用完后就不能再用了。


浅拷贝与深拷贝
1.浅拷贝
-
创建新容器,但只复制最外层的引用
-
内部嵌套的对象还是原来的对象
-
比喻:复制了一栋楼的门牌号,但楼里的房间还是原来那些
2.深拷贝
-
递归复制所有层级的对象
-
创建完全独立的新对象
-
比喻:复制整栋楼,包括楼里的每一个房间和家具
更多推荐
所有评论(0)