python中defaultdict字典功能特性介绍
作者:侯小啾 发布时间:2022-06-07 23:27:45
标签:python,defaultdict,字典
defaultdict
是普通字典dict的一个子类。通过collections
库的defaultdict()方法创建。
defaultdict()需要传入的参数为 类名。(type类型)
首先,以int类 作为参数传入为例,
from collections import defaultdict
dedict = defaultdict(int)
print(dedict)
不同于普通的字典,其特性在于,当用一个defaultdict
中不存在的键来调用时,不会报KeyError
错误
以调取’a’键的值为例:
print(dedict['a'])
此键的值默认为零。这是defaultdict()
参数为int
的情况,参数不同,默认值也不同。
defaultdict()需要传入的参数为 类名。(type类型)
传入其他类,来创建defaultdict(),效果如下:
from collections import defaultdict
dedict1 = defaultdict(list)
dedict2 = defaultdict(set)
dedict3 = defaultdict(dict)
dedict4 = defaultdict(tuple)
dedict5 = defaultdict(int)
dedict6 = defaultdict(float)
dedict7 = defaultdict(str)
# 创建一个什么用都没有的类
class A(object):
pass
# 传入可用!
dedict8 = defaultdict(A)
print(dedict1['a'])
print(dedict2['a'])
print(dedict3['a'])
print(dedict4['a'])
print(dedict5['a'])
print(dedict6['a'])
print(dedict7['a'])
print(dedict8['a'])
程序运行结果如下:
可以看出,不存在的键的默认值为 传入 类 的 默认实例对象。
默认值的布尔值通常为False,但也不一定。
是否为False跟类有关,如此处的通过A类的布尔值就为True。
甚至,还可以套娃:
dedict9 = defaultdict(defaultdict)
print(dedict9['a'])
defaultdict常用于统计多个目标数据的个数,并存储在defaultdict字典中。
示例如下:
from collections import defaultdict
bag = ["cheese", "Bread", "apple", "Bread", "orange", "cheese", 'apple',"milk", "apple", "bananas", "milk"]
count = defaultdict(int)
for item in bag:
count[item] += 1
print(count)
来源:https://skylarkprogramming.blog.csdn.net/article/details/122839482
0
投稿
猜你喜欢
- 一、在访客的内心深处做导航我讨厌迷失,不管是在道路上或是在线网络上。猜想一下?您的访客也是这样的。就像我们期望看到的道路上的路标一样,来帮助
- 查找出SQLServer的死锁和阻塞的源头 --查找出SQLServer死锁和阻塞的源头use mastergodeclare @spid
- vm.$watch用法: vm.$watch( expOrFn, callback, [options] ) ,返回值为 unwatch 是
- 网页的布局也许是大家最不放在眼里的地方,其实布局地位如同文字的排版一样,随便可布,布即随便。但是看过我上篇《网页设计技巧系列 之 文本排版》
- list:Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出寝室所有室友的名
- 多线程多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,
- 这里inference两个程序的连接,如目标检测,可以利用一个程序提取候选框,然后把候选框输入到分类cnn网络中。这里常需要进行一定的连接。
- elasticsearch 的client ,通过 NewClient 建立连接,通过 NewClient 中的 Set.URL设置访问的地
- 我们都知道打开文件有两种方法:f = open()with open() as f:这两种方法的区别就是第一种方法需要我们自己关闭文件;f.
- 1、df=DataFrame([{‘A':'11','B':'12'},{‘A
- 这个绝对是IE6的bug。我想要达到的是如下的效果。通过三个div,排布好侧栏和内容区。我用了如下的css:<style type=&
- 当多个事件绑定了同一个命令,那么在命令内部根据不同的事件进行处理的时候,怎么确定哪个事件发生了呢,用下面的来检测,经过测试处理tab键和al
- li {list-style-image: url(images/disc.gif);}li的这个样式定义是将列表项目使用图片来代替显示的小
- 本文实例讲述了Python实现队列的方法。分享给大家供大家参考,具体如下:Python实现队列队列(FIFO),添加元素在队列尾,删除元素在
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C
- 前言django wsgi python有个自带的wsgi模块 可以写自定义web框架 用wsgi在内部创建socket对象就可以了 自己只
- 代码和代码运行的结果:代码:import itertools as itswords="rot123"a=its.pro
- 我们经常会遇到这样的问题你还在为你的MySQL命令模式下,前面的提示信息还是:mysql>,那么我们如何更改mysql命令下提示信息呢
- 本文实例讲述了GO语言make()分配用法。分享给大家供大家参考。具体分析如下:make()分配:内部函数 make(T, args) 的服
- dlib包安装失败 python安装dlib时报错:Running setup.py install for dlib &helli