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 图片验证码代码
Dec 07 Python
Python 解析XML文件
Apr 15 Python
python self,cls,decorator的理解
Jul 13 Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
python pygame实现方向键控制小球
May 17 Python
python3.x中安装web.py步骤方法
Jun 23 Python
Python datetime 如何处理时区信息
Sep 02 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 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禁用函数设置及查看方法详解
2016/07/25 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
jquery实现上传文件进度条
2020/03/26 jQuery
Django model update的多种用法介绍
2020/03/28 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
四年大学生活的个人自我评价
2013/12/11 职场文书
求职信范文英文版
2014/01/05 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
法律进学校实施方案
2014/03/15 职场文书
承诺书范文
2014/06/03 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
python接口测试返回数据为字典取值方式
2022/02/12 Python
html中两种获取标签内的值的方法
2022/06/16 jQuery