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的Django框架与认证系统整合的方法
Jul 24 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
Python实现打砖块小游戏代码实例
May 18 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
Python数据正态性检验实现过程
Apr 18 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
php在window iis的莫名问题的测试方法
2013/05/14 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
微信小程序实现tab左右切换效果
2020/11/15 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
python实现的系统实用log类实例
2015/06/30 Python
python实现汉诺塔算法
2021/03/01 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
介绍Java的内部类
2012/10/27 面试题
毕业设计致谢语
2015/05/14 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python