流畅的python第三章字典和集合学习记录

什么是可散列的数据类型

如果一个对象是可散列的,那么在这个对象的生命周期中,他的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要有__qe__()方法。这样才能跟其他键做比较。如果两个可散列对象是相等的。那么他们的散列值一定是一样的。

原子不可变数据类型(str, bytes和数值类型)都是可散列类型,frozenset也是可散列的,因为根据其定义。frozenset里只能容纳可散列类型。元组的话。只有当一个元组包含的所有元素都是可散列类型的情况下,他才是可散列的。

流畅的python第三章字典和集合学习记录

字典推导

流畅的python第三章字典和集合学习记录

dict,defaultdict,orderedDict常见方法

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

字典的变种,除了dict,defaultdict之外的不同映射类型

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

不可变的映射类型

流畅的python第三章字典和集合学习记录

集合论

流畅的python第三章字典和集合学习记录

创建集合最好用

a = {1,2,3}而不是a = set([1,2,3])前者效率更高

集合推导

流畅的python第三章字典和集合学习记录

 集合的操作

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

集合的比较运算符

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

其他方法

流畅的python第三章字典和集合学习记录

dict和set的背后

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录

流畅的python第三章字典和集合学习记录