首页 > 编程语言 >python中的defaultdict类型

python中的defaultdict类型

时间:2022-09-08 09:11:53浏览次数:83  
标签:defaultdict __ puppy python 类型 print 默认值

Python内置的字典类型挺好用, 但有一个很麻烦的缺点, 当查询的键不存在时,就会报KeyError的错误, 影响程序的正常使用, 虽然可以用异常捕获处理, 但有时候还是不太方便. 

collections模块中的defaultdict 类型 就为我们提供了一个解决方案, 使用defaultdict 类型时, 当查询的键不存在,就会用一个默认的值代替. 

下面就来看一下常见类型的默认值

from collections import defaultdict
def defaultdict_test():


    dict1 = defaultdict(int)
    dict2 = defaultdict(float)
    dict3 = defaultdict(complex)
    dict4 = defaultdict(str)

    dict5 = defaultdict(tuple)
    dict6 = defaultdict(list)
    dict7 = defaultdict(set)
    dict8 = defaultdict(dict)

    print(type(dict1))

    print(dict1[2])
    print(dict2[2])
    print(dict3[2])
    print(dict4[2])
    print(dict5[2])
    print(dict6[2])
    print(dict7[2])
    print(dict8[2])

if __name__ == '__main__':
    defaultdict_test()

 

 

得到的结果如下

<class 'collections.defaultdict'>
0
0.0
0j

()
[]
set()
{}

 

字典类型自带一个方法, 可以在调用字典时处理这个问题

dict.setdefault()方法

设置默认值:有两个参数,一个是键的名称,另一个是默认值。如果键已经存在字典中就返回它的值,如果没有就将默认值保存并且返回该默认值。

strings = ('puppy', 'kitten', 'puppy', 'puppy',
           'weasel', 'puppy', 'kitten', 'puppy')
counts = {}
 
for kw in strings:
    counts.setdefault(kw, 0)
    counts[kw] += 1

 

标签:defaultdict,__,puppy,python,类型,print,默认值
From: https://www.cnblogs.com/lauff/p/16668267.html

相关文章

  • VSCode安装和Python安装及其配置【转载】
    VisualStudioCode(VSCode)是微软出品的一款可扩展的轻量级开源编辑器,并且支持全平台系统。这些特性使得VSCode颇受欢迎,可以说是目前最火的代码编辑器之一了,在程序员圈子里,......
  • python :生成条形码
    1importbarcode2frombarcode.writerimportImageWriter34#Definecontentofthebarcodeasastring5number=input("Enterthecodetogenerateba......
  • Python话题抓取
    话题抓取通过话题入口抓取话题下所有问题和回答数据存储MySQL:topicquestionanswer数据抓取requwsts/xpath/re配置maccookie解密chromecookie文件变更https......
  • Typescript类型体操 - kebab case
    题目中文将camelCase或PascalCase的字符串转换为kebab-case的风格示例:typeFooBarBaz=KebabCase<'FooBarBaz'>;constfoobarbaz:FooBarBaz='foo-bar-baz'......
  • Python中的类与对象
    类的创建classStudent native_place='吉林' def__init__(self,name,age): self.name=name#把局部变量name的值赋给实体属性self.name self.age=age#实例方法......
  • CF 和 ddns(python程序)
    cfhttps://blog.csdn.net/zhyl8157121/article/details/100551592ddnshttps://blog.zeruns.tech/archives/507.html......
  • 【JS】数据类型
    一.常量(const)和变量(var)都是存储数据的容器 常量在声明后必须赋值,不允许为空并且不允许重新赋值变量命名可以使用:英文字母、数字(不能以数字开头)、下划线、$。不能使......
  • Vue(3)-关于文本框数据框默认值效果(v-blid),数据类型注意
    序直接看代码,v-blid的使用,数据类型的转换示例代码点击查看代码<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title>avgScore......
  • 11.4 Bug的常见类型-思路不清导致的部题
     lst=[{'rating':[9.7,2062397],'id':'1292052','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆·罗宾斯','摩根·弗里曼']},{'rating':[9.6,15......
  • python3 - Django3.2框架
    提示:web开发已有php、java,而python在这方面,没有优势,python的优势在于:爬虫、人工智能、大数据分析等,python在web开发这方面,没必要掌握;版本:稳定版本:3.2(py3.6-3.10)、4.2(py3.9-......