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中尝试多线程编程的一个简明例子
Apr 07 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
django+js+ajax实现刷新页面的方法
May 22 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
python实现狄克斯特拉算法
Jan 17 Python
python向字符串中添加元素的实例方法
Jun 28 Python
python队列原理及实现方法示例
Nov 27 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
Python自带的IDE在哪里
Jul 01 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
python 实现Harris角点检测算法
Dec 11 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
php gzip压缩输出的实现方法
2013/04/27 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
继续学习javascript闭包
2015/12/03 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
Angular路由简单学习
2016/12/26 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
JS实现判断有效的数独算法示例
2019/02/25 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
如何利用cmp命令比较文件
2016/04/11 面试题
移动通信行业实习自我鉴定
2013/09/28 职场文书
专科毕业生学习生活的自我评价
2013/10/26 职场文书
积极分子思想汇报
2014/01/04 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS