Python dict和defaultdict使用实例解析


Posted in Python onMarch 12, 2020

先看一个需求

from collections import defaultdict

"""
需求: 统计user_list中字母出现的次数
"""

user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']

# 第一种方式

for item in user_list:
  if item not in user_dict:
    user_dict[item] = 1
  else:
    user_dict[item] += 1

print(user_dict) # {'A': 2, 'B': 1, 'C': 3}

# 第二种方式
user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
  user_dict.setdefault(item, 0) # 如果user_dict无item这个key,添加{item:0} , 如果有,不管. 而且这个方法性能比第一种方式好
  user_dict[item] += 1 # item的value值累加1

print(user_dict) # {'A': 2, 'B': 1, 'C': 3}

# 第三种方式.使用defaultdict
default_dict = defaultdict(int)
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
  default_dict[item] += 1 # 使用这种方式,代码更简单,性能也更好
print(default_dict) # defaultdict(<class 'int'>, {'A': 2, 'B': 1, 'C': 3})

defaultdict的使用

Python dict和defaultdict使用实例解析

Python dict和defaultdict使用实例解析

Python dict和defaultdict使用实例解析

由上面的示例可知,defaultdict会根据创建实例参数的类型生成一个对应类型的默认值,

这对于dict类型的数据结构而言,可以很好避免KeyError类型的错误 .

此外,我们还可以自定义defaultdict调用对象的数据结构,以满足我们实际需要

def person():
  '''自定义一个可调用对象'''
  return {
    'name': '',
    'age': 0
  }
default_dict = defaultdict(person)
default_dict['p']
pass

Python dict和defaultdict使用实例解析

是不是很赞....

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python contextlib模块使用示例
Feb 18 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
python属于解释型语言么
Jun 15 Python
Python实现手绘图效果实例分享
Jul 22 Python
flask开启多线程的具体方法
Aug 02 Python
python 解决微分方程的操作(数值解法)
May 26 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
Python数据结构dict常用操作代码实例
Mar 12 #Python
Python基于类路径字符串获取静态属性
Mar 12 #Python
对python中return与yield的区别详解
Mar 12 #Python
python 子类调用父类的构造函数实例
Mar 12 #Python
python3中sorted函数里cmp参数改变详解
Mar 12 #Python
Python实现子类调用父类的初始化实例
Mar 12 #Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 #Python
You might like
ThinkPHP控制器详解
2015/07/27 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
js实现小时钟效果
2020/03/25 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Python画图高斯分布的示例
2019/07/10 Python
在django中自定义字段Field详解
2019/12/03 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
广州迈达威.net面试题目
2012/03/10 面试题
公司庆典欢迎词
2015/01/26 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
政审证明材料
2015/06/19 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
git stash(储藏)的用法总结
2022/06/25 Servers