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 返回汉字的汉语拼音
Feb 27 Python
python的三目运算符和not in运算符使用示例
Mar 03 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
python中csv文件的若干读写方法小结
Jul 04 Python
python读取和保存图片5种方法对比
Sep 12 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
numpy数据类型dtype转换实现
Apr 24 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
Terran热键控制
2020/03/14 星际争霸
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
Javascript操作cookie的函数代码
2012/10/03 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
Python2随机数列生成器简单实例
2017/09/04 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
村委会主任先进事迹
2014/01/15 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
元旦晚会活动总结
2014/07/09 职场文书
班主任高考寄语
2015/02/26 职场文书
门店店长岗位职责
2015/04/14 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
Python可视化学习之seaborn调色盘
2022/02/24 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技