python中defaultdict的用法详解
作者:天堂十八楼 发布时间:2021-05-02 11:11:07
标签:python,defaultdict
初识defaultdict
之前在使用字典的时候, 用的比较随意, 只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登场了.
如何使用defaultdict
可以这样
from collections import defaultdict
d1 = defaultdict(int)
或者这样
import collections
d1 = collections.defaultdict(int)
defaultdict与dict实例化字典类型的区别
使用defaultdict任何未定义的key都会默认返回一个根据method_factory参数不同的默认值, 而相同情况下dict()会返回KeyError.
比较下面代码:
d1 = dict()
d2 = defaultdict(list)
print(d1['a'])
print(d2['a'])
defaultdict的构造
python官方文档中对defaultdict的定义如下:
class collections.defaultdict([default_factory[, ...]])
python官方文档中对defaultdict的解释如下:
defaultdic
dict subclass that calls a factory function to supply missing values
default_factory 接收一个工厂函数作为参数, 例如int str list set等.
defaultdict在dict的基础上添加了一个missing(key)方法, 在调用一个不存的key的时候, defaultdict会调用__missing__, 返回一个根据default_factory参数的默认值, 所以不会返回Keyerror.
Example
Example 1
s = 'mississippi'
d = defaultdict(int)
for k in s:
d[k] += 1
print(d)
Example 2
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = defaultdict(set)
for k, v in s:
d[k].add(v)
print(d)
0
投稿
猜你喜欢
- 网上搜一下对应的版本号,版本号相对应。安装django有两种方式:1.pip安装pip install django这个方法我用的时候已经报
- 所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。
- (1)序列化即js中的Object转化为字符串1.使用obj.toJSONString()var str=obj.toJSONString(
- 内容摘要: ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种
- 记得当时我们要跟网友天下合作,需要这样的一个鼠标划过放大的列表效果,就写了一个效果截图:演示代码:<!DOCTYPE html PUB
- 除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类。因为Python中的sklearn库
- XML Web Service 是在 Internet 上进行分布式计算的基本构造块。开放的标准以及对用户和应用程序之间的通信和协作的关注产
- 背景今天突然想到之前被要求做同性质银行的数据分析。妈耶!十几个银行,每个银行近5年的财务数据,而且财务报表一般都是 pdf 的,我们将 pd
- 如下所示:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/7/13 1
- php代码很简单:$server="127.0.0.1";println("Begin");$lin
- 使用pyaudio录音和格式转化环境pip3 install pyaudiopip3 install wavepip3 install nu
- 其实我们平时在深度学习中所说的卷积操作,在 opencv 中也可以进行,或者说是类似操作。那么它是什么操作呢?它就是图像的模糊(滤波)处理。
- 将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一。其他还有模板替换法,opcache等方法。静态化的作用:提高网站的响应速
- 如何制作一个防止多次刷新计数的图片计数器?请问如何做一个专业的图片计数器? <%countlong
- 1. self, cls 不是关键字 在python里面,self, cls 不是关键字,完全可以使用自己写的任意变量代替实现一样的效果 代
- 下面示例代码是防止用网页刷新过快,如果多个页面使用,最好将<%...%>代码存为一个asp文件,在需要的页面最前面include
- 前言最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动
- 在一篇文章中看到关于PHP引用的图解,对于加深对PHP引用的理解很有帮助,在这里备份一下。如果你对PHP的引用一点也不了解,可以先看我之前的
- Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学
- asp定时生成静态HTML的代码,对于缓解服务器压力有很大帮主,需要的朋友可以参考下。<% '判断是否要生成新的HT