第一部分:Python数据模型

个人总结:python数据模型或者python风格其实就是自定义一些基础的方法。比如__getitem__,__len__等,然后可以通过len(对象)而不是对象.len()的方法来调用。方便之处在于所有对象都可以使用这些统一的、基础的、规范的方法。自定义的类也可以参照定义编写这些方法。使得python风格的代码具有更好的兼容性、统一性。


第二部分:数据结构

个人总结:数组、元组、字典、集合、字节和文本等数据结构的特性及方法的使用。

容器序列和扁平序列、不可变序列、可变序列、之间的关系和具体的类
容器序列:list、tuple和collections.deque这些序列能存放不同类型的数据
扁平序列:str、bytes、bytearray、memoryview和array.array,这类序列只能容纳一种类型。存放的是值而不是引用。
不可变序列:tuple、str和bytes。
可变序列:list、bytearray、array.array、collections.deque和memoryview。可变序列继承自不可变序列。

数组:
基本方法的使用
列表推导式:[ord(s) for s in symbols if ord(s) > 127]
生成器表达式:(ord(symbol) for symbol in symbols) 区别在于一个式列表、一个是元组,生成器表达式效率更高

元组:
元组拆包、具名元组(nametuple)给元组各个值命名

基本方法的使用:
切片、切片赋值(右侧需为可迭代对象)、序列+* 、list.sort()转换直接排序(就地改动返回None) sorted(li)可以被赋值

避免数组的过度使用:
array用于只包含数值的列表 collections.deque类(双向队列)

字典:
可散列值:id始终唯一,具有__hash__、__eq__方法。
hash的作用:同样的值得到的hash值唯一
字典推导式:{country: code for code, country in DIAL_CODES}