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.列表推导式、生成器表达式、字典推导式
原文地址:https://www.cnblogs.com/zhihaospace/p/12075620.html
时间: 2024-11-04 01:50:32