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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
简单解析Django框架中的表单验证
Jul 17 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
基于python指定包的安装路径方法
Oct 27 Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 Python
python机器人运动范围问题的解答
Apr 29 Python
Python3.5字符串常用操作实例详解
May 01 Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
django实现后台显示媒体文件
Apr 07 Python
什么是python的列表推导式
May 26 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 MySQL与分页效率
2008/06/04 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Vue.set 全局操作简单示例
2019/09/19 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
python多重继承实例
2014/10/11 Python
Python 自动补全(vim)
2014/11/30 Python
使用Python &amp; Flask 实现RESTful Web API的实例
2017/09/19 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
python实现一个简单的ping工具方法
2019/01/31 Python
pytorch 共享参数的示例
2019/08/17 Python
Python进度条的制作代码实例
2019/08/31 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
数控技术专业毕业自荐书范文
2014/02/05 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
离婚案件被告代理词
2015/05/23 职场文书
歌咏比赛主持词
2015/06/29 职场文书
素质拓展训练感想
2015/08/07 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL