流程的Python 第三章:字典和集合

来源:互联网 发布:千牛是淘宝卖家版么 编辑:程序博客网 时间:2024/05/21 02:33

前言:
       字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。

目录:

  1. 内容回顾
  2. 相关资料
  3. 阅读后感

正文:
一. 内容回顾
1.1 泛映射类型
Mapping和MutableMapping这两个抽象类,他们的作用是为了dict和其他类似的类型定义形式接口。

1.2 字典推导
列表推导和生成器表达式的概念移植在字典上,从而使得字典推导有了以任何键值作为元素迭代构建出字典。

1.3 常见的映射方法

'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues'

1.4 映射的弹性健查询
defaultdict 处理找不到的健的一个选择,以及特殊方法 _ missing_,都是为了在找不到健的时候,给个默认值。

1.5 字典的变种
collections.Counter

ct = collections.Counter('adsdsvadacadr')print ct执行结果:Counter({'a': 4, 'd': 4, 's': 2, 'c': 1, 'r': 1, 'v': 1})

1.6 子类化UserDict

import collectionsclass StrKeyDict(collections.UserDict):      def __missing__(self, key):         if isinstance(key, str):            raise KeyError(key)        return self[str(key)]    def __contains__(self, key):        return str(key) in self.data     def __setitem__(self, key, item):        self.data[str(key)] = item  

1.7 不可变映射类型
MappingProxyType来获取只读的字典,防止用户错误地修改某个映射。

1.8 集合论
集合可以用于去重( set )。

1.9 dict和set的背后
dict和set的效率很高,举例:在一个有1000万个健的字典里查找1000个数,花在每个数上的时间不过是0.337毫秒。

二. 相关资料
Python字典的常用操作方法:
1.has_key(‘key名称’)
判断字典里是否有该键存在,如果存在的话返回True,不存在的话返回False
比如
a.has_key(“name”)返回True
a.has_key(“sss”)返回False

2.keys()返回的是字典键组成的列表
比如a.keys()
返回:[‘age’,’name’]

3.values返回的是字典值组成的列表
比如a.values()
返回:[23,’xiaoming’]

4.update()方法,把2个字典进行合并
比如我现在又建立了一个
b = {‘sex’:’man’}
a.update(b)
print a
输出的结果是:{‘age’: 23, ‘name’: ‘xiaoming’, ‘sex’: ‘man’}

5.update方法也可以更新和添加字典

>>> info = dict(name='cold', blog='linuxzen.com')>>> info.update({'name':'cold night', 'blogname':'linuxzen'})>>> info{'blog': 'linuxzen.com', 'name': 'cold night', 'blogname': 'linuxzen'}>>> info.update(name='cold', blog='www.linuxzen.com') # 更优雅>>> info{'blog': 'www.linuxzen.com', 'name': 'cold', 'blogname': 'linuxzen'}

三. 阅读后感
收获在映射类型API中,_ missing_是个很好的方法,当对象找不到某个健的时候,可以通过这个方法自定义会发生什么。

参考:
1. Python字典和集合
2. 高性能Python-字典和集合

原创粉丝点击