python 字典 setdefault()和get()方法比较详解


Posted in Python onAugust 07, 2019

dict.setdefault(key, default=None) --> 有key获取值,否则设置 key:default,并返回default,default默认值为None

dict.get(key, default=None) --> 有key获取值,否则返回default。default默认值为None。

例子:循环迭代message字符串中每个字符,计算每个字符出现的次数

import pprint
message = "It is a good day, is not it?I mean the weather is good today." 
count1 = {}
for char in message:
 count1.setdefault(char, 0)
 count1[char] += 1 
count2 = {}
for char in message:
 count2[char] = count2.get(char, 0) + 1 
pprint.pprint(count1)
pprint.pprint(count2)

扩展:

defaultdict:属于collections 模块下的一个工厂函数,用于构建字典对象,接收一个函数(可调用)对象为作为参数。参数返回的类型是什么,key对应value就是什么类型。

例子:

python 字典 setdefault()和get()方法比较详解

一般写法:

data = [("p", 1), ("p", 2), ("p", 3),
  ("h", 1), ("h", 2), ("h", 3)]
result = {}
for (key, value) in data:
 if key not in result:
  result[key] = []
 result[key].append(value)

setdefault:

result = {}
data = [("p", 1), ("p", 2), ("p", 3),
  ("h", 1), ("h", 2), ("h", 3)]
for (key, value) in data:
 result.setdefault(key, []).append(value)

defaultdict:

from collections import defaultdict
result = defaultdict(list)
data = [("p", 1), ("p", 2), ("p", 3),
  ("h", 1), ("h", 2), ("h", 3)]
for (key, value) in data:
 result[key].append(value)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现全角半角字符互转的方法
Nov 28 Python
Python工程师面试必备25条知识点
Jan 17 Python
python3.x上post发送json数据
Mar 04 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
python 通过文件夹导入包的操作
Jun 01 Python
python使用列表的最佳方案
Aug 12 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
python模块内置属性概念及实例
Feb 18 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 #Python
如何用Python来搭建一个简单的推荐系统
Aug 07 #Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 #Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 #Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 #Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 #Python
Python学习笔记之文件的读写操作实例分析
Aug 07 #Python
You might like
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
python机器学习之神经网络实现
2018/10/13 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
如何基于python实现不邻接植花
2020/05/01 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
股份转让协议书
2014/04/12 职场文书
销售员试用期自我评价
2014/09/15 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
订货会邀请函
2015/01/31 职场文书
小学班长竞选稿
2015/11/20 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python