python内置序列二——字典和集合

字典构造方法


字典推导

可以从任何以键值对作为元素的可迭代对象中构建出字典

例:

DIAL_CODES=[(86,'China'),(91,'India')...]

contry_code = {country:code for code, country in DIAL_CODES}

用setdefault处理找不到的键

my_dict.setdefault(key, []).append(new_value)相当于

if key not in my_dict:

    my_dict[key] = []

my_dict[key].append(new_value)

映射的弹性键查询

defaultdict:处理找不到的键的一个选择

比如,我们新建了这样一个字典:dd=defaultdict(list),如果键"new-key"在dd中还不存在的话,表达式dd['new-key']会按照以下的步骤来行事:

1、调用list()来建立一个新列表

2、把这个新列表作为值,'new-key'作为它的键,放到dd中。

3、返回这个列表的引用

集合论

集合的本质是许多唯一对象的聚集,因此,集合可以用于去重。

除了保证唯一性,集合还实现了许多基础的中缀运算符。给定两个集合a和b,a|b返回的是它们的合集,a&b返回的是它们的交集,而a-b得到的是差值。

dict的实现及其导致的结果

1、键必须是可散列的

一个可散列的的对象必须满足以下要求:

(1)支持hash()函数,并且通过__hash__()方法所得到的散列值是不变的。

(2)支持通过__eq__()方法来检测相等性。

(3)若a==b为真,则hash(a) == hash(b)也为真

2、字典在内存上的开销巨大。

3、键查询很快。

4、键的次序取决于添加顺序。

5、往字典里添加新键可能会改变已有键的顺序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本节要介绍的是Python里面常用的几种数据结构。通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组...
    小黑y99阅读 65,244评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 如果方向对了,路再崎岖,也有到达光明的一天;反之,如果方向不对,路再平坦,等待你的不过是悬崖或黑暗。
    斜阳_6edb阅读 524评论 1 2
  • 我不快乐,像你一样,我的手指变成了浅蓝色,缩在被窝里臆想自己变成透明色然后消失在空气里。是的,我和你一样不快乐。 ...
    森林牧羊人阅读 377评论 0 3