第五章自定义序列类
Posted zhihaospace
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五章自定义序列类相关的知识,希望对你有一定的参考价值。
1.序列类型的分类
- 容器序列(元素类型可以不同):list、tuple、deque
- 扁平序列(元素类型必须相同):str、bytes、bytearray、array.array
- 可变序列(序列内容可以修改):list、deque、bytearray、array
- 不可变(序列内容不可以修改):str、tuple、bytes
2.序列的abc继承关系
- Sequence就是不可变序列的方法集合的抽象基类
- MutableSequence是集合了可变序列的方法和协议的抽象基类。
3.序列的+、+=和extend的区别
- +:加号两边都是相同的类型,并且返回一个新的对象
- +=:右侧只要是一个可迭代类型即可,不会返回一个新对象
- +=内部调用魔法函数__iadd__,__iadd__内部调用extend函数遍历添加的对象放入左侧对象中
补充:extend和append函数区别
- extend:遍历元素一个一个放入其中
- append:直接放入其中变成嵌套
1 a = [1, 2] 2 c = a + [3, 4] # +:只能相同类型,产生新对象 3 print(c) # [1, 2, 3, 4] 4 5 a += (3, 4) # +=:可以不同类型 6 print(a) # [1, 2, 3, 4] 7 8 b = [10, 11] 9 b.extend((13, 14)) 10 print(b) # [10, 11, 13, 14] 11 12 b.append((1, 2)) 13 print(b) # [10, 11, 13, 14, (1, 2)]
4.实现可切片的对象
5.bisect管理可排序序列
6.什么时候我们不该用列表
7.列表推导式、生成器表达式、字典推导式
以上是关于第五章自定义序列类的主要内容,如果未能解决你的问题,请参考以下文章