网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Python标准库defaultdict模块使用示例
内容
    Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会带来很多的便利,多看看很有好处。
    defaultdict是其中一个方法,就是给字典value元素添加默认类型,之前看到过但是没注意怎么使用,今天特地瞅了瞅。
    首先是各大文章介绍的第一个例子:
    代码如下:
    import collections as coll
    def default_factory():
    return 'default value'
    d = coll.defaultdict(default_factory, foo='bar')
    print 'd:',d
    print 'foo=>', d['foo']
    print 'foo=>', d['bar'] #key为'bar'的元素不存在,会有一个默认值
    输出结果是这样的:
    代码如下:
    d: defaultdict(, {'foo': 'bar'})
    foo=> bar
    foo=> default value
    结论:这里可以看到,当我们取字典中一个没有的key的时候就会自动根据 default_factory生成一个value,类似于 d.get('bar','default value')
    一个对比的例子:
    如果一个字典中有个map的value是一个set,往这个set连续添加两个元素,使用原始的dict是这样的
    代码如下:
    dict_set1 = {}
    #如果不知道这个字段中key有没有,需要先判断
    if 'key' not in dict_set1:
    dict_set1['key'] = set()
    dict_set1['key'].add('111')
    dict_set1['key'].add('000')
    print dict_set1
    如果使用defaultdict就是这样的
    代码如下:
    dict_set = coll.defaultdict(set)
    dict_set['key'].add('000')
    dict_set['key'].add('111')
    print dict_set
    好处就是不需要做set的初始化这个判断了。
    两个使用的小案例
    代码如下:
    ss = '1111222233334444'
    dict_int = coll.defaultdict(int)
    for s in ss:
    dict_int[s] += 1
    print dict_int
    '''''
    官方文档的这个例子就能看到这种写法的简洁了
    >>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
    >>> d = defaultdict(list)
    >>> for k, v in s:
    ... d[k].append(v)
    ...
    >>> d.items()
    [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
    '''
    当我们做这种带有统计性质的数据操作时候,这个对象很好用。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 18:17:38