14-python基础—python3中的defaultdict()
2024-08-31 07:00:50
1.collections.defaultdict 类
from collections import defaultdict
2.collections.defaultdict 类与工厂函数dict比较:
(1) 众所周知,在Python中如果访问dict字典中不存在的键,会引发KeyError异常。但是有时候,字典中的每个键都存在默认值是非常方便的。defaultdict可以避免KeyError异常。
# 1-dict()
strings = ('puppy', 'kitten', 'puppy', 'puppy',
'weasel', 'puppy', 'kitten', 'puppy')
counts = {}
for kw in strings:
counts[kw] += 1 # 报错
#Traceback (most recent call last):
# File "C:\Users\summer\Desktop\demo.py", line 5, in <module>
# counts[kw] += 1
#KeyError: 'puppy' # 2-defaultdict()
from collections import defaultdict strings = ('puppy', 'kitten', 'puppy', 'puppy',
'weasel', 'puppy', 'kitten', 'puppy')
counts = defaultdict(int)
for kw in strings:
counts[kw] += 1 print(counts) # defaultdict(<class 'int'>, {'puppy': 5, 'kitten': 2, 'weasel': 1})
(2)default_factory 接收一个工厂函数作为参数, 例如int str list set等.
defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值默认值的类型由工厂函数决定。
from collections import defaultdict dic1 = defaultdict(int)
print(dic1['a']) dic2 = defaultdict(list)
print(dic2['a']) dic3 = defaultdict(dict)
print(dic3['a']) #
# []
# {}
(3)返回的是工厂函数的实例,那么就具有了该工厂函数的相应方法。
最新文章
- 【.net 深呼吸】记录WCF的通信消息
- Deactivate .NET refector
- 解决方案:将已存在的项目 添加到 tfs解决方案中的时候 出现:新项目不能成功加入源码控制
- Spark Tungsten揭秘 Day2 Tungsten-sort Based Shuffle
- [BZOJ 4033] [HAOI2015] T1 【树形DP】
- 在SQL中使用PL/SQL函数存在的问题
- 查看ASM 使用率
- 前端中的SEO
- javaScript 工作必知(二) null 和undefined
- justAP1.3.0版发布了
- Iphone CPU 架构类型
- python基础(二)字符串內建函数详解
- 利用 CURL 发送JSON格式字符串
- ssh登录locale报错:cannot change locale (zh_CN.UTF-8): No such file or directory
- 数据库查询的数据导出到xls表,集合数据导出到xls表
- 模态推出 全屏 隐藏tabbar
- Artech的MVC4框架学习——第二章URL路由
- 1.python的一些规范
- 20155338《网络对抗技术》 Exp1 PC平台逆向破解
- Docker 搭建 etcd 集群配置
热门文章
- mysql中@ROW的使用
- 偏向锁,偏向线程id ,自旋锁
- HTTP请求方式: GET和POST的比较
- linux装mysql
- Ubuntu下使用git clone 的权限问题解决方法
- 解决 Failed to load class ";org.slf4j.impl.StaticLoggerBinder";
- 用python编写排序算法
- 前端学习(三十)es6的一些问题(笔记)
- ORA-20782: Creating GGS_DDL_RULES
- vue+cesiumjs环境搭建【import引入】