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 实现红包随机生成算法的简单实例
Jan 04 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
图解Python变量与赋值
Apr 03 Python
Python贪心算法实例小结
Apr 22 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
pytorch自定义初始化权重的方法
Aug 17 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
python文件及目录操作代码汇总
Jul 08 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
Python修改DBF文件指定列
Dec 19 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版(3)
2006/10/09 PHP
php5数字型字符串加解密代码
2008/04/24 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
php5.3 废弃函数小结
2010/05/16 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python中decorator使用实例
2015/04/14 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
应届生法律求职信
2013/10/22 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
工商干部先进事迹
2014/05/14 职场文书
困难补助申请报告
2015/05/19 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
nginx日志格式分析和修改
2022/04/28 Servers