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判断值是否在list或set中的性能对比分析
Apr 16 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
python3实现点餐系统
Jan 24 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
Django 实现对已存在的model进行更改
Mar 28 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
python如何安装下载后的模块
Jul 03 Python
opencv 图像轮廓的实现示例
Jul 08 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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不用正则采集速度探究总结
2008/03/24 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python字符串与url编码的转换实例
2018/05/10 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python实现电子产品商店
2019/02/26 Python
python顺序执行多个py文件的方法
2019/06/29 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
中科方德软件测试面试题
2016/04/21 面试题
最新大学生自我评价
2013/09/24 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
计算机实训报告范文
2014/11/05 职场文书
财政局长个人总结
2015/03/04 职场文书
会计简历自我评价
2015/03/10 职场文书
开会通知短信大全
2015/04/20 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
详解JS数组方法
2021/11/20 Javascript
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python
PHP RabbitMQ消息列队
2022/05/11 PHP