美文网首页
python-dict默认值

python-dict默认值

作者: 木火应 | 来源:发表于2022-08-04 10:23 被阅读0次
  • 字典获取不存在的键时会报错
    name = {}
    print(name["mhy"])
    
错误
解决
  • 方式一,通过引入python collections模块中的defaultdict解决,意思是给不存在的键一个默认的对应数据类型的默认值
    # 给不存在的键一个默认值,这里是int类型,可以传入python其他数据类型
    from collections import defaultdict
    name = defaultdict(int)
    print(name["mhy"])
    
  • 方式二,通过编写继承dict类并重写__missing__魔术方法实现
    class default(dict):
      def __missing__(self, key):
          self[key] = 0
          return self[key]
    name = default()
    print(name["mhy"])
    
  • 运行结果:


    结果
扩展
  • 两个键的情况,可以结合以上defaultdict__missing__:
    from collections import defaultdict
    
    class default2(dict):
        def __missing__(self, key):
            self[key] = defaultdict(int)
            return self[key]
    
    if __name__ == '__main__':
        T = default2()
        print(T["mhy"]["dengyusen"])
    
  • 三个键的情况:
    from collections import defaultdict
    
    class default(dict):
        def __missing__(self, key):
            self[key] = default2()
            return self[key]
    
    class default2(dict):
        def __missing__(self, key):
            self[key] = defaultdict(int)
            return self[key]
    
    if __name__ == '__main__':
        T = default()
        print(T["mhy"]["dengyusen"]["san"])
    

相关文章

  • python-dict默认值

    字典获取不存在的键时会报错name = {}print(name["mhy"]) 解决 方式一,通过引入pytho...

  • python-dict

    特点: 查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐...

  • python-dict求和

    需求:比如现在需要将字典{"name":10,"age":100}与字典{"name":20,"age":200}...

  • es6

    解构赋值 默认值 解构赋值 解构默认值和参数默认值的区别

  • ES6 3.函数扩展(包括箭头函数,this指向)

    函数扩展 参数默认值 输出结果:默认值: hello world     默认值: hello kity 作用域 ...

  • PT5的默认值运算符

    1、模板变量的默认值 自定义变量设置默认值; 系统变量设置默认值; 变量的函数与默认值可以同时使用。 index....

  • 1.0 C++远征:函数参数默认值、函数重载、内联函数

    C++远征 [TOC] 一、函数参数默认值 1.函数参数默认值的声明 2.函数参数默认值的定义 3.函数参数默认值...

  • 函数的扩展(笔记)

    默认值 1.函数的参数可以设置默认值 2.length返回没有指定默认值的参数长度。 作用域 参数如果有默认值,函...

  • ES6学习第六节:Function扩展

    函数参数默认值 与解构赋值默认值结合使用 参数默认值的位置 函数的length属性 作用域 一旦设置了参数的默认值...

  • (二)11.函数扩展19-08-08

    参数默认值 打印结果:默认值 hello world默认值 hello kill 作用域概念 打印结果:作用域 k...

网友评论

      本文标题:python-dict默认值

      本文链接:https://www.haomeiwen.com/subject/mtcpwrtx.html