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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
详解详解Python中writelines()方法的使用
May 25 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
python文件写入write()的操作
May 14 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
django实现模型字段动态choice的操作
Apr 01 Python
使用Python构造hive insert语句说明
Jun 06 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 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 文件缓存的性能测试
2010/04/25 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
mac下安装nginx和php
2013/11/04 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
php查询及多条件查询
2017/02/26 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
Python连接数据库学习之DB-API详解
2017/02/07 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python with语句和过程抽取思想
2019/12/23 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
酒店端午节活动方案
2014/08/26 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
会议主持词通用版
2019/04/02 职场文书
iPhone13再次曝光
2021/04/15 数码科技
新手必备Python开发环境搭建教程
2021/05/28 Python