课程名称: python必学模块-collections
课程章节: 课程介绍 + tuple + namedtuple
课程讲师: bobby
课程内容:
主要讲Python collections模块
collection模块,最常用六大数据结构:deque,defaultdict,Counter,OrderedDict,ChainMap,这些是基础数据结构的高级结构,里面的功能非常好用,可以考虑优先使用
tuple:不可变元祖
特点:不可变、iterable
- iterable:可迭代对象,__iter__魔法函数
- 不可变:
tuple[0] = xxx
会报错- 是相对的,不是绝对的
- 比list好用:
- immutable:性能优化、线程安全、可作为dict的key、拆包特性
- key: hashable的对象,才能作为key
- {xx_tuple:6}
- 类似C中的struct
- immutable:性能优化、线程安全、可作为dict的key、拆包特性
用法:
- 拆包
xx_tuple = (1,2,3)
a,b,c = xx_tuple
a, *other = user_tuple
namedtuple:
- 对于对象,可以通过点语法访问属性
- User = namedtuple(“User”, [“name”,“age”])
- user = User(name=“xxx”, age=6)
- 定位:tuple的子类、相对class节省空间(适用于数据处理方面)
- *的用法:*args, **kwargs的用途:
- args: tuple的
- kwargs:keyword参数
- *:可以认为是解包tuple的意思
- **:解包dict的意思
- 好用的方法:
- _asdict():转换为dict
defaultdict:
- dict的方法:dict.setdefault(key, value) -> 如果key没出现过,则设置其对应value
- defaultdict:设置了setdefault的dict
- default_dict = defaultdict(int) # 默认值会为0
- =defaultdict(函数名) # 这个自定义函数返回个dict,也行
课程收获:
补充到了一些日常比较少用的数据结构,还蛮有趣的。
明天继续学掉剩下的几个,之后开始研究量化啦。
嗯嗯!