zoukankan      html  css  js  c++  java
  • python的defaultdict

    defaultdict是dict的一个子类,接受一个工厂函数作为参数,当访问defaultdict中不存在的key时,会将工厂函数的返回值作为默认的value。

    class defaultdict(dict):
        """
        defaultdict(default_factory[, ...]) --> dict with default factory
        
        The default factory is called without arguments to produce
        a new value when a key is not present, in __getitem__ only.
        A defaultdict compares equal to a dict with the same items.
        All remaining arguments are treated the same as if they were
        passed to the dict constructor, including keyword arguments.
        """

    测试代码

    完整代码: https://github.com/blackmatrix7/python-learning/blob/master/other/defaultdict.py

    __author__ = 'blackmatrix'
    
    
    def factory_func():
        return 'default_factory'
    
    test_defaultdict = defaultdict(factory_func)
    
    if __name__ == '__main__':
        '''
        当key存在时,返回的是key对应的value
        这个时候和普通的dict没有什么区别
        '''
        test_defaultdict['a'] = '233333'
        print(test_defaultdict['a'])
        '''
        当访问不存在的key时,自动将工厂函数的返回值作为默认值
        '''
        print(test_defaultdict['b'])
        print(test_defaultdict['c'])

    运行结果

    233333
    default_factory
    default_factory

    如果defaultdict在创建的时候没有传入工厂函数,则在访问不存在的key时,会抛出KeyError

    from collections import defaultdict
    
    test_defaultdict2 = defaultdict()
    
    print(test_defaultdict2['x'])
    
    # KeyError: 'x'
  • 相关阅读:
    百度图片
    在线人数统计
    mysql简易导入excel
    asp.net 导出excel带图片
    C# 正则验证
    js生成随机数
    YQL获取天气
    取html里的img和去html标签
    客户端信息获得《转》
    使用ASP.NET上传图片汇总
  • 原文地址:https://www.cnblogs.com/blackmatrix/p/6905790.html
Copyright © 2011-2022 走看看