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不带重复的全排列代码
Aug 13 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
Python3标准库总结
Feb 19 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
python求质数列表的例子
Nov 24 Python
python加载自定义词典实例
Dec 06 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
浅谈django 重载str 方法
May 19 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
python实现简单聊天功能
Jul 07 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的开合式多级菜单程序
2006/10/09 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
动态添加js事件实现代码
2009/03/12 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
最基础的Python的socket编程入门教程
2015/04/23 Python
解析Python中的异常处理
2015/04/28 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
PyQt5 多窗口连接实例
2019/06/19 Python
Django中信号signals的简单使用方法
2019/07/04 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
应届生法律求职信
2013/10/22 职场文书
学期自我评价
2014/01/27 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
python 调用js的四种方式
2021/04/11 Python
详解Python描述符的工作原理
2021/06/11 Python
MySQL创建管理KEY分区
2022/04/13 MySQL